ghost 6.53.0 → 6.54.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.
- package/components/ghost-storage-base-3.0.0.tgz +0 -0
- package/components/tryghost-adapter-base-cache-0.2.0.tgz +0 -0
- package/components/tryghost-adapter-base-scheduling-0.1.1.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.1.tgz +0 -0
- package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
- package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/tryghost-kg-converters-1.2.3.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.1.3.tgz +0 -0
- package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
- package/core/boot.js +9 -6
- package/core/built/admin/assets/Combination-CJG7Flp-.js +41 -0
- package/core/built/admin/assets/Growth-CSaHoSVD.js +3 -0
- package/core/built/admin/assets/Newsletters-C5cs6FGo.js +1 -0
- package/core/built/admin/assets/Overview-j4NaeUNm.js +1 -0
- package/core/built/admin/assets/{PolarAngleAxis-pciQ0MOy.js → PolarAngleAxis-BGjf7sBu.js} +1 -1
- package/core/built/admin/assets/{RadialBarChart-DWmw2PcX.js → RadialBarChart-zeFf9mBz.js} +1 -1
- package/core/built/admin/assets/Web-_fD935OX.js +2 -0
- package/core/built/admin/assets/account-migration-DLvVA5yq.js +1 -0
- package/core/built/admin/assets/activitypub/{account-migration-BPZG37DJ.js → account-migration-DHbZcxGM.js} +13 -13
- package/core/built/admin/assets/activitypub/activitypub.js +7 -7
- package/core/built/admin/assets/activitypub/{avatar-ZYco0ITb.js → avatar-B3DEDB1l.js} +10 -10
- package/core/built/admin/assets/activitypub/{avatar-flipboard-D541lc4F.js → avatar-flipboard-Cqrg0XMx.js} +3 -3
- package/core/built/admin/assets/activitypub/{bluesky-sharing-NOHUtHjl.js → bluesky-sharing-zfxUey_L.js} +38 -37
- package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-B-GOFDPZ.js → chunk-KS7C4IRE-D4HEcEwi.js} +716 -710
- package/core/built/admin/assets/activitypub/{content-formatters-bwrp4iEO.js → content-formatters-BpQARh28.js} +229 -181
- package/core/built/admin/assets/activitypub/{copy-C7m7ovHw.js → copy-D9UWIAan.js} +2 -2
- package/core/built/admin/assets/activitypub/{dist-B5ira32t.js → dist-Ba_QxHHl.js} +5 -5
- package/core/built/admin/assets/activitypub/{domain-iqE4YXwD.js → domain-CmwSZLHK.js} +33 -33
- package/core/built/admin/assets/activitypub/{edit-profile-B8MFYh28.js → edit-profile-CXdwNmVG.js} +46 -45
- package/core/built/admin/assets/activitypub/{explore-BbdKodp3.js → explore-DfbjzGM1.js} +20 -20
- package/core/built/admin/assets/activitypub/{feed-Cl3A5owG.js → feed-DSEBJOqf.js} +15 -15
- package/core/built/admin/assets/activitypub/{field-DL6WyR-c.js → field-CY7XVcx6.js} +13 -13
- package/core/built/admin/assets/activitypub/{hash-6G3DzwL9.js → hash-BC9Q0N4c.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-YmhuBice.js → inbox-DQ4ZnC1m.js} +2 -2
- package/core/built/admin/assets/activitypub/inbox-DtQ0kytT.js +1221 -0
- package/core/built/admin/assets/activitypub/{label-DGbLjDvE.js → label-Dw96GQ7u.js} +6 -6
- package/core/built/admin/assets/activitypub/layout-IdVq3lRy.js +1 -0
- package/core/built/admin/assets/activitypub/{moderation-qnBtk1zS.js → moderation-Dg_-I-8C.js} +32 -31
- package/core/built/admin/assets/activitypub/{note-C7ZRoSJv.js → note-Cy1-uKMY.js} +21 -21
- package/core/built/admin/assets/activitypub/{notifications-DiEA4b1o.js → notifications-B_fvoLIM.js} +17 -17
- package/core/built/admin/assets/activitypub/{onboarding-_JVgEwgV.js → onboarding-BFDkzeR2.js} +2 -2
- package/core/built/admin/assets/activitypub/{onboarding-DG4zu3qM.js → onboarding-D6rcBdPe.js} +5 -5
- package/core/built/admin/assets/activitypub/{preferences-B3FtocnP.js → preferences-ByJseZp6.js} +1607 -1606
- package/core/built/admin/assets/activitypub/{profile-D8ZJfYXB.js → profile-BFtbnIjz.js} +264 -263
- package/core/built/admin/assets/activitypub/{reply-C1vggenw.js → reply-CpdMeAO5.js} +2 -2
- package/core/built/admin/assets/activitypub/{routes-BOii-V9n.js → routes-Dh3xXfce.js} +1311 -1295
- package/core/built/admin/assets/activitypub/{separator-1gNokN5S.js → separator-BI1FLsYM.js} +4 -4
- package/core/built/admin/assets/activitypub/{settings--9Sb0nbl.js → settings-DTgqJPxM.js} +14 -14
- package/core/built/admin/assets/activitypub/{site-fkMmqv0V.js → site-CdL9ZLqm.js} +10 -10
- package/core/built/admin/assets/activitypub/{step-1-QhivSMw2.js → step-1-DIDg4aHb.js} +15 -15
- package/core/built/admin/assets/activitypub/{step-2-pMk9YwqD.js → step-2-BfGe8BYt.js} +7 -7
- package/core/built/admin/assets/activitypub/{step-3-DvmVC1fo.js → step-3-mE9spAqw.js} +12 -12
- package/core/built/admin/assets/activitypub/{tabs-Dc0FEEYD.js → tabs-ogqwoBlb.js} +241 -237
- package/core/built/admin/assets/activitypub/{topic-filter-CuDyM5bD.js → topic-filter-DLHBZT93.js} +4 -4
- package/core/built/admin/assets/activitypub/use-activity-pub-queries-VzbN99u_.js +1957 -0
- package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-Drx1kdAK.js → use-navigate-with-base-path-CAwXTmqH.js} +165 -175
- package/core/built/admin/assets/activitypub/{use-reply-chain-data-BHkCHcW5.js → use-reply-chain-data-CxonteFD.js} +8 -8
- package/core/built/admin/assets/activitypub/users-BLeiOTHc.js +1464 -0
- package/core/built/admin/assets/activitypub/{x-BHCEe-c2.js → x-C8tAnXly.js} +2 -2
- package/core/built/admin/assets/{audience-adiFehTD.js → audience-BKRdsFmy.js} +1 -1
- package/core/built/admin/assets/{automated-emails-UWM02CMr.js → automated-emails-Cn87L5Md.js} +1 -1
- package/core/built/admin/assets/automations-B7-y3dXt.js +1 -0
- package/core/built/admin/assets/automations-BP_aHamJ.js +1 -0
- package/core/built/admin/assets/{avatar-flipboard-Lz3F9fNT.js → avatar-flipboard-C6Kj3Awu.js} +1 -1
- package/core/built/admin/assets/bluesky-sharing-Bh36XPh4.js +1 -0
- package/core/built/admin/assets/box-BWbhXh21.js +1 -0
- package/core/built/admin/assets/breadcrumb-D34YWnaw.js +1 -0
- package/core/built/admin/assets/card-DGoDJzrn.js +1 -0
- package/core/built/admin/assets/{chart-ChpW-NzQ.js → chart-BuRT2Y6p.js} +14 -14
- package/core/built/admin/assets/chart-helpers-DbklaJw9.js +1 -0
- package/core/built/admin/assets/checkbox-DA4-1UiI.js +1 -0
- package/core/built/admin/assets/chunk.524.45e0875f41b71e46e849.js +25 -0
- package/core/built/admin/assets/chunk.582.51defd4b009f0de8d4d5.js +27 -0
- package/core/built/admin/assets/{chunk.831.0703a12e49f51cec3f3a.js → chunk.589.096f4d0bb775e5229aa9.js} +78 -85
- package/core/built/admin/assets/{chunk.432.c2caa0b20f03e71d1a35.js → chunk.962.b73442b07be930bb5d85.js} +2216 -3188
- package/core/built/admin/assets/{chunk.432.c2caa0b20f03e71d1a35.js.LICENSE.txt → chunk.962.b73442b07be930bb5d85.js.LICENSE.txt} +0 -63
- package/core/built/admin/assets/code-editor-view-BKBrkffZ.js +1 -0
- package/core/built/admin/assets/comments-CzVNIT8b.js +1 -0
- package/core/built/admin/assets/container-BYz2Ed39.js +1 -0
- package/core/built/admin/assets/data-list-16rkJYYi.js +1 -0
- package/core/built/admin/assets/date-range-select-B5vSsrpx.js +1 -0
- package/core/built/admin/assets/disabled-sources-indicator-NkOIoMue.js +1 -0
- package/core/built/admin/assets/{dist-CsekE4FL.js → dist-CQJY6SVY.js} +1 -1
- package/core/built/admin/assets/dist-DGzPJ_bO.js +4 -0
- package/core/built/admin/assets/{dist-BbGrW05X.js → dist-DyViJwIy.js} +1 -1
- package/core/built/admin/assets/dist-Ndy-PuGN.js +1 -0
- package/core/built/admin/assets/dist-P_ohUlTi.js +1 -0
- package/core/built/admin/assets/domain-B7_n5nfx.js +1 -0
- package/core/built/admin/assets/dropzone-DcuJEEUf.js +5 -0
- package/core/built/admin/assets/edit-profile-rvDGrS8J.js +1 -0
- package/core/built/admin/assets/editor-BCiIyFjm.js +8 -0
- package/core/built/admin/assets/empty-indicator-oX1u1Pkn.js +1 -0
- package/core/built/admin/assets/esm-CFX93H5M.js +2 -0
- package/core/built/admin/assets/explore-BZAZOg5X.js +1 -0
- package/core/built/admin/assets/feed-CFV8xDw9.js +1 -0
- package/core/built/admin/assets/field-BW-M2Zwp.js +1 -0
- package/core/built/admin/assets/{filter-sources-v39ihhhV.js → filter-sources-Fx8wiYYw.js} +1 -1
- package/core/built/admin/assets/filters-CGX_pf2N.js +1 -0
- package/core/built/admin/assets/filters-DtcXMZDU.js +1 -0
- package/core/built/admin/assets/framework-provider-CmtnPXIT.js +4 -0
- package/core/built/admin/assets/{ghost-b57f077997b739a8ae9a70772dc016cb.js → ghost-b1dce91ad3232cc259ee5fbbf9526243.js} +294 -290
- package/core/built/admin/assets/ghost-dark-c8d0ab7f515b2010c173e23e9b32ea8a.css +1 -0
- package/core/built/admin/assets/gift-link-modal-Bk8qpnMw.js +1 -0
- package/core/built/admin/assets/{gift-links-CY3GwiVi.js → gift-links-nBxJjZiQ.js} +1 -1
- package/core/built/admin/assets/growth-Ck2s3JjR.js +1 -0
- package/core/built/admin/assets/hooks-BApwwBE0.js +2 -0
- package/core/built/admin/assets/{inbox-TEISAmth.js → inbox-BRp1_aaC.js} +35 -35
- package/core/built/admin/assets/index-BBf502Wg.js +69 -0
- package/core/built/admin/assets/index-BCCZKxP2.css +1 -0
- package/core/built/admin/assets/inline-EMAm3okk.js +1 -0
- package/core/built/admin/assets/input-group-DjuYnNCd.js +1 -0
- package/core/built/admin/assets/{react-dom-C6aoWSfl.js → jsx-runtime-DX3WBWVO.js} +1 -1
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +5 -2
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +2 -2
- package/core/built/admin/assets/{koenig-lexical-Di7b48ED.js → koenig-lexical-CM7UFNdL.js} +2 -2
- package/core/built/admin/assets/kpi-card-BrGH6FsT.js +1 -0
- package/core/built/admin/assets/kpi-card-CIGyijjx.js +1 -0
- package/core/built/admin/assets/kpi-helpers-_HRRsklE.js +1 -0
- package/core/built/admin/assets/kpi-tabs-BSvh9eoq.js +1 -0
- package/core/built/admin/assets/label-BOR9XdKl.js +1 -0
- package/core/built/admin/assets/label-picker-BdNAWuUX.js +1 -0
- package/core/built/admin/assets/{labels-GbxlXWtf.js → labels-Cyayfd-e.js} +1 -1
- package/core/built/admin/assets/layout-Bw4GnxXp.js +1 -0
- package/core/built/admin/assets/limit-service-9fwD33lU.js +20 -0
- package/core/built/admin/assets/link-helpers-tOlxmuH5.js +1 -0
- package/core/built/admin/assets/list-page-B6ANtzkd.js +1 -0
- package/core/built/admin/assets/mailchimp-Ds_NQ04w.svg +9 -0
- package/core/built/admin/assets/member-custom-fields-DvFyamLu.js +1 -0
- package/core/built/admin/assets/member-detail-Cg2vTqvJ.js +1 -0
- package/core/built/admin/assets/members-DsPxYAVm.js +10 -0
- package/core/built/admin/assets/modals-Bf_fyvHZ.js +31 -0
- package/core/built/admin/assets/moderation-Dlp7M5sa.js +1 -0
- package/core/built/admin/assets/multi-select-combobox-CH1o8XXQ.js +1 -0
- package/core/built/admin/assets/newsletter-CQ5CAYUI.js +1 -0
- package/core/built/admin/assets/{newsletters-DZm3yLj8.js → newsletters-D1jbtV-h.js} +1 -1
- package/core/built/admin/assets/note-BrAZ7Z0o.js +1 -0
- package/core/built/admin/assets/notifications-BnbHLOPC.js +1 -0
- package/core/built/admin/assets/nql-lang-B7faUf8D.js +19 -0
- package/core/built/admin/assets/{offers-D11QtPXX.js → offers-CrY6nSRR.js} +1 -1
- package/core/built/admin/assets/onboarding-route-eU146kuA.js +1 -0
- package/core/built/admin/assets/overview-BpbaK-xu.js +1 -0
- package/core/built/admin/assets/page-header-C0jVxtS8.js +1 -0
- package/core/built/admin/assets/{pages-BnObVRrf.js → pages-BbNWFcGj.js} +1 -1
- package/core/built/admin/assets/pintura-CXOmq-5H.svg +15 -0
- package/core/built/admin/assets/post-analytics-Iw7dk1mT.js +1 -0
- package/core/built/admin/assets/post-analytics-header-D9pJ4iNm.js +1 -0
- package/core/built/admin/assets/{post-analytics-provider-DSfBCtnj.js → post-analytics-provider-BDqcfBor.js} +1 -1
- package/core/built/admin/assets/post-share-modal-DBfKl2GZ.js +1 -0
- package/core/built/admin/assets/{posts-CwH8VJvB.js → posts-EWpZIjkr.js} +1 -1
- package/core/built/admin/assets/preferences-D4EANGoc.js +5 -0
- package/core/built/admin/assets/profile-dJ44Bn_W.js +1 -0
- package/core/built/admin/assets/{referrers-nxR52jPI.js → referrers-BCfFYSHc.js} +1 -1
- package/core/built/admin/assets/router-provider-C1R4AZ2o.js +1 -0
- package/core/built/admin/assets/select--2uVN9_-.js +1 -0
- package/core/built/admin/assets/settings-Bz3RZRmE.js +1 -0
- package/core/built/admin/assets/settings-SD9bxIpt.js +4 -0
- package/core/built/admin/assets/share-modal-CkdTTMJd.js +1 -0
- package/core/built/admin/assets/social-urls-BvFZwYcE.js +8 -0
- package/core/built/admin/assets/sort-button-DZp9Y2r1.js +1 -0
- package/core/built/admin/assets/source-icon-CHr9qJ2Y.js +1 -0
- package/core/built/admin/assets/stack-xiN0eQ6Z.js +1 -0
- package/core/built/admin/assets/stats-DGoXZxWE.js +1 -0
- package/core/built/admin/assets/stats-view-D2-1L0ms.js +1 -0
- package/core/built/admin/assets/step-1-RdahbwyG.js +1 -0
- package/core/built/admin/assets/step-2-D83PeRwd.js +1 -0
- package/core/built/admin/assets/step-3-p_Op4wv4.js +2 -0
- package/core/built/admin/assets/switch-qp518gFQ.js +1 -0
- package/core/built/admin/assets/table-B8LgTQJZ.js +1 -0
- package/core/built/admin/assets/tabs-D3ZOYkM7.js +1 -0
- package/core/built/admin/assets/tags-B4l891z2.js +1 -0
- package/core/built/admin/assets/text-DwtjwGkh.js +1 -0
- package/core/built/admin/assets/textarea-CTlb3Uu6.js +1 -0
- package/core/built/admin/assets/{tiers-EghDzCKc.js → tiers-BgYLWRJv.js} +1 -1
- package/core/built/admin/assets/toggle-group-DNXDkAwf.js +1 -0
- package/core/built/admin/assets/topic-filter-DZGjEcz3.js +1 -0
- package/core/built/admin/assets/{use-analytics-data-0l_OHtnR.js → use-analytics-data-CaT8RirX.js} +1 -1
- package/core/built/admin/assets/use-filter-params-DeQ8sX4N.js +1 -0
- package/core/built/admin/assets/use-growth-stats-9Db2CuJe.js +1 -0
- package/core/built/admin/assets/{use-post-referrers-DwI31Ril.js → use-post-referrers-BV54YcQS.js} +1 -1
- package/core/built/admin/assets/use-reply-chain-data-DuYZGDan.js +1 -0
- package/core/built/admin/assets/use-simple-pagination-8fTua9Nt.js +1 -0
- package/core/built/admin/assets/{use-tinybird-query-DvZBBMG7.js → use-tinybird-query-Dz156HvZ.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-token-CQtebkvU.js → use-tinybird-token-C9RUdL_n.js} +1 -1
- package/core/built/admin/assets/{users-Pc8IRjk9.js → users-CcSCQFcQ.js} +1 -1
- package/core/built/admin/assets/virtual-list-BCvP0YF-.js +1 -0
- package/core/built/admin/assets/web-DTZnnUGr.js +1 -0
- package/core/built/admin/index.html +18 -22
- package/core/frontend/apps/private-blogging/index.js +1 -1
- package/core/frontend/apps/private-blogging/lib/middleware.js +1 -1
- package/core/frontend/helpers/split.js +2 -1
- package/core/frontend/meta/asset-url.js +1 -1
- package/core/frontend/meta/author-image.js +1 -1
- package/core/frontend/meta/blog-logo.js +1 -1
- package/core/frontend/meta/canonical-url.js +1 -1
- package/core/frontend/meta/cover-image.js +1 -1
- package/core/frontend/meta/get-meta.js +1 -1
- package/core/frontend/meta/og-image.js +1 -1
- package/core/frontend/meta/paginated-url.js +1 -1
- package/core/frontend/meta/twitter-image.js +1 -1
- package/core/frontend/meta/url.js +1 -1
- package/core/frontend/services/assets-minification/admin-auth-assets.js +1 -1
- package/core/frontend/services/llms/handler.js +1 -1
- package/core/frontend/services/proxy.js +31 -2
- package/core/frontend/services/routing/collection-router.js +1 -1
- package/core/frontend/services/routing/controllers/email-post.js +1 -1
- package/core/frontend/services/routing/controllers/entry/markdown.js +1 -1
- package/core/frontend/services/routing/controllers/entry/markdown.ts +1 -1
- package/core/frontend/services/routing/controllers/entry.js +1 -1
- package/core/frontend/services/routing/controllers/entry.ts +1 -1
- package/core/frontend/services/routing/controllers/previews.js +6 -7
- package/core/frontend/services/routing/controllers/unsubscribe.js +7 -3
- package/core/frontend/services/routing/email-router.js +1 -1
- package/core/frontend/services/routing/events.js +12 -0
- package/core/frontend/services/routing/middleware/page-param.js +1 -1
- package/core/frontend/services/routing/parent-router.js +1 -1
- package/core/frontend/services/routing/preview-router.js +1 -1
- package/core/frontend/services/routing/router-manager.js +4 -8
- package/core/frontend/services/routing/rss-router.js +1 -1
- package/core/frontend/services/routing/static-pages-router.js +1 -1
- package/core/frontend/services/routing/static-routes-router.js +1 -1
- package/core/frontend/services/routing/taxonomy-router.js +1 -1
- package/core/frontend/services/rss/generate-feed.js +1 -1
- package/core/frontend/services/sitemap/base-site-map-generator.js +23 -4
- package/core/frontend/services/sitemap/site-map-index-generator.js +1 -1
- package/core/frontend/services/sitemap/site-map-manager.js +14 -8
- package/core/frontend/services/sitemap/utils.js +1 -1
- package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +1 -1
- package/core/frontend/services/theme-engine/middleware/update-local-template-options.js +1 -1
- package/core/frontend/utils/images.js +1 -1
- package/core/frontend/web/middleware/admin-toolbar.js +1 -1
- package/core/frontend/web/middleware/handle-image-sizes.js +2 -2
- package/core/frontend/web/middleware/redirect-ghost-to-admin.js +1 -1
- package/core/frontend/web/routers/serve-favicon.js +1 -1
- package/core/frontend/web/routers/serve-public-file.js +1 -1
- package/core/frontend/web/site.js +5 -5
- package/core/server/adapters/cache/AdapterCacheMemoryTTL.js +2 -2
- package/core/server/adapters/cache/MemoryCache.js +2 -2
- package/core/server/adapters/cache/Redis.js +1 -1
- package/core/server/adapters/cache/index.js +1 -1
- package/core/server/adapters/lib/redis/AdapterCacheRedis.js +2 -2
- package/core/server/adapters/route-settings/FileStore.js +2 -8
- package/core/server/adapters/route-settings/FileStore.ts +1 -6
- package/core/server/adapters/route-settings/S3RouteSettingsStore.js +206 -0
- package/core/server/adapters/route-settings/S3RouteSettingsStore.ts +199 -0
- package/core/server/adapters/route-settings/utils.js +13 -0
- package/core/server/adapters/route-settings/utils.ts +7 -0
- package/core/server/adapters/scheduling/deps.d.ts +0 -2
- package/core/server/adapters/scheduling/error-capture.js +76 -0
- package/core/server/adapters/scheduling/error-capture.ts +91 -0
- package/core/server/adapters/scheduling/utils.js +18 -34
- package/core/server/adapters/scheduling/utils.ts +36 -0
- package/core/server/adapters/storage/LocalFilesStorage.js +1 -1
- package/core/server/adapters/storage/LocalImagesStorage.js +1 -1
- package/core/server/adapters/storage/LocalMediaStorage.js +1 -1
- package/core/server/adapters/storage/LocalStorageBase.js +3 -3
- package/core/server/adapters/storage/S3Storage.js +2 -2
- package/core/server/adapters/storage/S3Storage.ts +1 -1
- package/core/server/adapters/storage/utils.js +1 -1
- package/core/server/api/endpoints/authentication.js +1 -1
- package/core/server/api/endpoints/featurebase.js +1 -1
- package/core/server/api/endpoints/files.js +2 -2
- package/core/server/api/endpoints/images.js +2 -2
- package/core/server/api/endpoints/libraries.d.ts +0 -1
- package/core/server/api/endpoints/media.js +8 -5
- package/core/server/api/endpoints/member-custom-fields.js +4 -1
- package/core/server/api/endpoints/member-custom-fields.ts +4 -1
- package/core/server/api/endpoints/posts.js +17 -1
- package/core/server/api/endpoints/search-index-public.js +4 -3
- package/core/server/api/endpoints/search-index.js +5 -4
- package/core/server/api/endpoints/settings-public.js +1 -1
- package/core/server/api/endpoints/settings.js +3 -1
- package/core/server/api/endpoints/utils/serializers/input/utils/url.js +9 -1
- package/core/server/api/endpoints/utils/serializers/output/default.js +7 -0
- package/core/server/api/endpoints/utils/serializers/output/files.js +1 -1
- package/core/server/api/endpoints/utils/serializers/output/media.js +1 -1
- package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.js +7 -4
- package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.ts +8 -4
- package/core/server/api/endpoints/utils/serializers/output/members.js +16 -26
- package/core/server/api/endpoints/utils/serializers/output/pages.js +7 -0
- package/core/server/api/endpoints/utils/serializers/output/posts.js +13 -0
- package/core/server/api/endpoints/utils/serializers/output/utils/url.js +1 -1
- package/core/server/api/endpoints/utils/validators/input/members.js +2 -52
- package/core/server/data/db/backup.js +1 -1
- package/core/server/data/importer/handlers/image.js +3 -3
- package/core/server/data/importer/import-manager.js +6 -4
- package/core/server/data/importer/importers/content-file-importer.js +2 -2
- package/core/server/data/migrations/utils/schema.js +4 -2
- package/core/server/data/migrations/versions/6.54/2026-07-19-16-59-00-add-content-import-permission.js +10 -0
- package/core/server/data/migrations/versions/6.54/2026-07-20-13-59-21-drop-email-tracked-sent-count-from-automation-action-revisions.js +7 -0
- package/core/server/data/migrations/versions/6.54/2026-07-21-01-58-20-add-automation-run-steps-poller-index.js +3 -0
- package/core/server/data/migrations/versions/6.54/2026-07-21-21-08-15-add-automated-email-recipients-mailgun-message-id-index.js +3 -0
- package/core/server/data/migrations/versions/6.54/2026-07-22-10-41-08-add-click-tracking-to-automated-email-recipients.js +13 -0
- package/core/server/data/migrations/versions/6.54/2026-07-22-15-10-30-add-email-clicked-count-to-automation-action-revisions.js +7 -0
- package/core/server/data/migrations/versions/6.54/2026-07-23-10-24-18-add-automation-action-revision-to-redirects.js +9 -0
- package/core/server/data/schema/commands.js +37 -3
- package/core/server/data/schema/fixtures/fixtures.json +7 -0
- package/core/server/data/schema/lib/default-index-name.js +20 -0
- package/core/server/data/schema/schema.js +40 -17
- package/core/server/data/seeders/data-generator.js +4 -2
- package/core/server/lib/image/image-size.js +5 -7
- package/core/server/lib/image/image-utils.js +2 -2
- package/core/server/lib/image/index.js +4 -4
- package/core/server/lib/lexical.js +3 -3
- package/core/server/lib/mobiledoc.js +2 -2
- package/core/server/lib/validate-password.js +1 -1
- package/core/server/models/action.js +9 -0
- package/core/server/models/base/plugins/generate-slug.js +1 -1
- package/core/server/models/collection.js +1 -1
- package/core/server/models/custom-theme-setting.js +1 -1
- package/core/server/models/member.js +73 -0
- package/core/server/models/newsletter.js +1 -1
- package/core/server/models/post.js +19 -5
- package/core/server/models/posts-meta.js +1 -1
- package/core/server/models/redirect.js +1 -1
- package/core/server/models/settings.js +1 -1
- package/core/server/models/snippet.js +1 -1
- package/core/server/models/tag.js +1 -1
- package/core/server/models/user.js +1 -1
- package/core/server/models/welcome-email-automated-email.js +1 -1
- package/core/server/services/activitypub/activity-pub-service-wrapper.js +1 -1
- package/core/server/services/adapter-manager/adapter-manager.js +5 -1
- package/core/server/services/adapter-manager/adapter-manager.ts +7 -2
- package/core/server/services/adapter-manager/index.js +18 -15
- package/core/server/services/adapter-manager/index.ts +23 -17
- package/core/server/services/adapter-manager/utils.js +124 -14
- package/core/server/services/adapter-manager/utils.ts +130 -14
- package/core/server/services/api-version-compatibility/mw-version-rewrites.js +1 -1
- package/core/server/services/audience-feedback/index.js +1 -1
- package/core/server/services/auth/passwordreset.js +1 -1
- package/core/server/services/auth/session/express-session.js +1 -1
- package/core/server/services/auth/session/index.js +2 -2
- package/core/server/services/auth/session/session-service.js +1 -1
- package/core/server/services/automations/automations-api.js +2 -19
- package/core/server/services/automations/automations-api.ts +2 -31
- package/core/server/services/automations/automations-repository.ts +15 -0
- package/core/server/services/automations/database-automations-repository.js +30 -2
- package/core/server/services/automations/database-automations-repository.ts +33 -2
- package/core/server/services/automations/poll.js +16 -12
- package/core/server/services/automations/poll.ts +17 -15
- package/core/server/services/automations/service.js +1 -1
- package/core/server/services/automations/service.ts +3 -13
- package/core/server/services/automations/welcome-email-automation-poll.js +2 -1
- package/core/server/services/comments/index.js +1 -1
- package/core/server/services/custom-redirects/index.js +2 -2
- package/core/server/services/email-analytics/email-analytics-service-wrapper.js +14 -13
- package/core/server/services/email-analytics/email-analytics-service.js +1 -1
- package/core/server/services/email-analytics/events/start-email-analytics-job-event.js +11 -15
- package/core/server/services/email-analytics/events/start-email-analytics-job-event.ts +15 -0
- package/core/server/services/email-analytics/index.js +2 -3
- package/core/server/services/email-analytics/index.ts +1 -2
- package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.js +1 -6
- package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.ts +0 -9
- package/core/server/services/email-analytics/jobs/fetch-latest/index.js +1 -1
- package/core/server/services/email-analytics/jobs/index.js +0 -2
- package/core/server/services/email-service/email-service-wrapper.js +1 -1
- package/core/server/services/email-service/email-service.js +20 -4
- package/core/server/services/explore-ping/explore-ping-service.js +24 -39
- package/core/server/services/explore-ping/explore-ping-service.ts +198 -0
- package/core/server/services/explore-ping/index.js +11 -11
- package/core/server/services/explore-ping/index.ts +42 -0
- package/core/server/services/gifts/gift-reminder-scheduler.js +1 -1
- package/core/server/services/gifts/gift-reminder-scheduler.ts +1 -1
- package/core/server/services/gifts/gift-service-wrapper.js +1 -1
- package/core/server/services/identity-tokens/identity-token-service-wrapper.js +1 -1
- package/core/server/services/indexnow-ping/constants.js +30 -0
- package/core/server/services/indexnow-ping/constants.ts +32 -0
- package/core/server/services/indexnow-ping/index.js +29 -253
- package/core/server/services/indexnow-ping/index.ts +37 -0
- package/core/server/services/indexnow-ping/indexnow-ping-service.js +229 -0
- package/core/server/services/indexnow-ping/indexnow-ping-service.ts +319 -0
- package/core/server/services/invites/index.js +1 -1
- package/core/server/services/lib/mailgun-client.js +3 -3
- package/core/server/services/link-redirection/index.js +2 -2
- package/core/server/services/link-redirection/link-redirect-repository.js +1 -1
- package/core/server/services/link-redirection/link-redirect.js +12 -13
- package/core/server/services/link-redirection/link-redirect.ts +22 -0
- package/core/server/services/link-redirection/link-redirects-service.js +1 -1
- package/core/server/services/link-tracking/full-post-link.js +2 -2
- package/core/server/services/link-tracking/index.js +1 -1
- package/core/server/services/mail/ghost-mailer.js +1 -1
- package/core/server/services/mail/index.js +1 -1
- package/core/server/services/media-inliner/external-media-inliner.js +2 -2
- package/core/server/services/media-inliner/service.js +4 -3
- package/core/server/services/member-attribution/index.js +1 -1
- package/core/server/services/member-welcome-emails/service.js +1 -1
- package/core/server/services/members/api.js +8 -2
- package/core/server/services/members/csv/index.js +10 -0
- package/core/server/services/members/csv/index.ts +3 -0
- package/core/server/services/members/csv/parse.js +94 -0
- package/core/server/services/members/csv/parse.ts +111 -0
- package/core/server/services/members/csv/types.js +2 -0
- package/core/server/services/members/csv/types.ts +39 -0
- package/core/server/services/members/csv/unparse.js +69 -0
- package/core/server/services/members/csv/unparse.ts +79 -0
- package/core/server/services/members/exporter/query.js +35 -8
- package/core/server/services/members/importer/config.js +35 -0
- package/core/server/services/members/importer/config.ts +39 -0
- package/core/server/services/members/importer/members-csv-importer.js +31 -13
- package/core/server/services/members/members-api/members-api.js +4 -2
- package/core/server/services/members/members-api/repositories/event-repository.js +13 -2
- package/core/server/services/members/members-api/services/member-bread-service.js +42 -19
- package/core/server/services/members/middleware.js +1 -1
- package/core/server/services/members/service.js +15 -2
- package/core/server/services/members/stripe-connect.js +1 -1
- package/core/server/services/members-custom-fields/actions.js +3 -0
- package/core/server/services/members-custom-fields/actions.ts +6 -2
- package/core/server/services/members-custom-fields/config.js +34 -0
- package/core/server/services/members-custom-fields/config.ts +38 -0
- package/core/server/services/members-custom-fields/definitions-service.js +156 -21
- package/core/server/services/members-custom-fields/definitions-service.ts +170 -25
- package/core/server/services/members-custom-fields/index.js +16 -3
- package/core/server/services/members-custom-fields/index.ts +17 -3
- package/core/server/services/members-custom-fields/values-service.js +56 -10
- package/core/server/services/members-custom-fields/values-service.ts +62 -10
- package/core/server/services/mentions/mention-sending-service.js +22 -2
- package/core/server/services/mentions/service.js +21 -5
- package/core/server/services/newsletters/index.js +1 -1
- package/core/server/services/oembed/oembed-service.js +122 -33
- package/core/server/services/oembed/service.js +4 -2
- package/core/server/services/offers/service.js +1 -1
- package/core/server/services/post-scheduling/index.js +4 -3
- package/core/server/services/post-scheduling/index.ts +4 -3
- package/core/server/services/post-scheduling/post-scheduling.js +1 -1
- package/core/server/services/post-scheduling/post-scheduling.ts +1 -1
- package/core/server/services/posts/post-email-handler.js +13 -6
- package/core/server/services/posts/post-scheduling.js +1 -1
- package/core/server/services/posts/posts-service-instance.js +1 -1
- package/core/server/services/posts/posts-service.js +2 -2
- package/core/server/services/posts-public/service.js +1 -1
- package/core/server/services/public-config/site.js +1 -1
- package/core/server/services/recommendations/recommendation-service-wrapper.js +1 -1
- package/core/server/services/recommendations/service/libraries.d.ts +0 -2
- package/core/server/services/route-settings/dynamic-routing-service.js +2 -3
- package/core/server/services/route-settings/index.js +1 -1
- package/core/server/services/route-settings/route-settings-parser.js +134 -124
- package/core/server/services/route-settings/route-settings-parser.ts +160 -125
- package/core/server/services/route-settings/validation-errors.js +178 -0
- package/core/server/services/route-settings/validation-errors.ts +196 -0
- package/core/server/services/settings/settings-service.js +2 -2
- package/core/server/services/settings-helpers/index.js +1 -1
- package/core/server/services/slack-notifications/service.js +1 -1
- package/core/server/services/slack-ping/constants.js +16 -0
- package/core/server/services/slack-ping/constants.ts +15 -0
- package/core/server/services/slack-ping/index.js +26 -204
- package/core/server/services/slack-ping/index.ts +35 -0
- package/core/server/services/slack-ping/slack-ping-service.js +214 -0
- package/core/server/services/slack-ping/slack-ping-service.ts +296 -0
- package/core/server/services/staff/index.js +1 -1
- package/core/server/services/stats/posts-stats-service.js +1 -1
- package/core/server/services/stats/service.js +1 -1
- package/core/server/services/stripe/service.js +1 -1
- package/core/server/services/tags-public/service.js +1 -1
- package/core/server/services/themes/validate.js +1 -1
- package/core/server/services/update-check/index.js +1 -1
- package/core/server/services/url/lazy-url-service.js +66 -6
- package/core/server/services/url/lazy-url-service.ts +73 -6
- package/core/server/services/url/url-generator.js +1 -1
- package/core/server/services/url/url-service-facade.js +68 -3
- package/core/server/services/url/url-service-facade.ts +79 -4
- package/core/server/services/url/url-service.js +1 -1
- package/core/server/services/url/urls.js +1 -1
- package/core/server/services/webhooks/index.js +19 -2
- package/core/server/services/webhooks/listen.js +6 -11
- package/core/server/services/webhooks/payload.js +1 -3
- package/core/server/services/webhooks/serialize.js +16 -1
- package/core/server/web/admin/app.js +1 -1
- package/core/server/web/admin/middleware/redirect-admin-urls.js +1 -1
- package/core/server/web/api/endpoints/admin/routes.js +1 -0
- package/core/server/web/api/middleware/cors.js +1 -1
- package/core/server/web/api/middleware/upload.js +4 -0
- package/core/server/web/gift-preview/controller.js +1 -1
- package/core/server/web/shared/middleware/redirect-amp-urls.js +1 -1
- package/core/server/web/shared/middleware/uncapitalise.js +2 -2
- package/core/server/web/shared/middleware/url-redirects.js +1 -1
- package/core/shared/config/defaults.json +8 -1
- package/core/shared/config/overrides.json +4 -0
- package/core/shared/url-utils.js +19 -15
- package/core/shared/url-utils.ts +20 -0
- package/ghost.js +0 -1
- package/package.json +26 -31
- package/pnpm-lock.yaml +681 -2789
- package/pnpm-workspace.yaml +31 -17
- package/components/tryghost-adapter-base-scheduling-0.0.0.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.0.0.tgz +0 -0
- package/core/built/admin/assets/Combination--5EZGaDs.js +0 -43
- package/core/built/admin/assets/Growth-C0NoKcHQ.js +0 -3
- package/core/built/admin/assets/Newsletters-Ed8kDjdy.js +0 -1
- package/core/built/admin/assets/Overview-CArPgRZt.js +0 -1
- package/core/built/admin/assets/Web-CjjYoVM3.js +0 -2
- package/core/built/admin/assets/account-migration-mfa5mNI9.js +0 -1
- package/core/built/admin/assets/activitypub/inbox-B3rjKMTv.js +0 -1221
- package/core/built/admin/assets/activitypub/layout-jcurg3rU.js +0 -1
- package/core/built/admin/assets/activitypub/use-activity-pub-queries-yqGRcnLn.js +0 -2569
- package/core/built/admin/assets/activitypub/users-CfyHIsTG.js +0 -1316
- package/core/built/admin/assets/automations-DkUnxNdv.js +0 -1
- package/core/built/admin/assets/automations-vjXofmV_.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-T-pO3RcP.js +0 -1
- package/core/built/admin/assets/breadcrumb-CekPYTCn.js +0 -1
- package/core/built/admin/assets/button--i2uMDDn.js +0 -4
- package/core/built/admin/assets/card-CSWz_BXq.js +0 -1
- package/core/built/admin/assets/chart-helpers-C_4Ka_vT.js +0 -1
- package/core/built/admin/assets/chunk.524.8ce2c741473e2f0929dc.js +0 -25
- package/core/built/admin/assets/chunk.582.453459d6228d2955408b.js +0 -27
- package/core/built/admin/assets/code-editor-view-BfkwQto2.js +0 -1
- package/core/built/admin/assets/command-K75Jzs0G.js +0 -1
- package/core/built/admin/assets/comments-BEIi1DH-.js +0 -1
- package/core/built/admin/assets/container-BNXvlcjA.js +0 -1
- package/core/built/admin/assets/data-list-BmK5QMab.js +0 -1
- package/core/built/admin/assets/date-range-select-5sKzwbt7.js +0 -1
- package/core/built/admin/assets/disabled-sources-indicator-L_ssJTNr.js +0 -1
- package/core/built/admin/assets/dist-BBIJuyPg.js +0 -1
- package/core/built/admin/assets/dist-BHE0dp6o.js +0 -1
- package/core/built/admin/assets/dist-DJ6c4_De.js +0 -1
- package/core/built/admin/assets/dist-DW0QXQO3.js +0 -1
- package/core/built/admin/assets/dist-DxFLceO5.js +0 -1
- package/core/built/admin/assets/dist-QcACAOAD.js +0 -1
- package/core/built/admin/assets/dist-duxRDcQu.js +0 -177
- package/core/built/admin/assets/domain-CLaPZ9Rc.js +0 -1
- package/core/built/admin/assets/dropzone-E0bSX4_a.js +0 -5
- package/core/built/admin/assets/edit-profile-DqNPKaA4.js +0 -1
- package/core/built/admin/assets/editor-CkLXQDRp.js +0 -8
- package/core/built/admin/assets/empty-indicator-BTtOlgIo.js +0 -1
- package/core/built/admin/assets/esm-TSfGW7nz.js +0 -2
- package/core/built/admin/assets/explore-BEstLxKr.js +0 -1
- package/core/built/admin/assets/feed-C58p2voG.js +0 -1
- package/core/built/admin/assets/field-BSbDUHPv.js +0 -1
- package/core/built/admin/assets/filters-BgYv8Gt7.js +0 -1
- package/core/built/admin/assets/filters-DvenFkmK.js +0 -1
- package/core/built/admin/assets/framework-provider-jQktxm9P.js +0 -4
- package/core/built/admin/assets/ghost-dark-8590dea6cd695ff90f27d262c4464538.css +0 -1
- package/core/built/admin/assets/gift-link-modal-BPjXkEFt.js +0 -1
- package/core/built/admin/assets/growth-D4JNiVTe.js +0 -1
- package/core/built/admin/assets/hooks-Cjxexi_I.js +0 -2
- package/core/built/admin/assets/index-BacwlcOy.js +0 -67
- package/core/built/admin/assets/index-DxRNHH0o.css +0 -1
- package/core/built/admin/assets/inline-C22rnPro.js +0 -1
- package/core/built/admin/assets/input-group-CKfrILLP.js +0 -1
- package/core/built/admin/assets/jsx-runtime-CtMZ-PAS.js +0 -1
- package/core/built/admin/assets/kpi-card-DZxQKAIb.js +0 -1
- package/core/built/admin/assets/kpi-card-FidQ5zg3.js +0 -1
- package/core/built/admin/assets/kpi-helpers-C5T8Vaf1.js +0 -1
- package/core/built/admin/assets/kpi-tabs-_VRK6hGV.js +0 -1
- package/core/built/admin/assets/label-Cza7hPgn.js +0 -1
- package/core/built/admin/assets/label-picker-DgC_zLaw.js +0 -1
- package/core/built/admin/assets/layout-BxsXnKFX.js +0 -1
- package/core/built/admin/assets/limit-service-CTurluJQ.js +0 -20
- package/core/built/admin/assets/link-helpers-C3Gqy2cz.js +0 -1
- package/core/built/admin/assets/list-page-BtqCnow_.js +0 -1
- package/core/built/admin/assets/member-custom-fields-9uXFBqSt.js +0 -1
- package/core/built/admin/assets/member-detail-Dq6ZDIxo.js +0 -1
- package/core/built/admin/assets/members-CUWD9jal.js +0 -10
- package/core/built/admin/assets/modals-CIdwHVga.js +0 -31
- package/core/built/admin/assets/moderation-DTt04UDA.js +0 -1
- package/core/built/admin/assets/newsletter-cC8vcc9h.js +0 -1
- package/core/built/admin/assets/note-DZU0IY9e.js +0 -1
- package/core/built/admin/assets/notifications-NoHpBHJ4.js +0 -1
- package/core/built/admin/assets/nql-lang-CvCSOQG3.js +0 -19
- package/core/built/admin/assets/onboarding-route-Deg2hNm8.js +0 -1
- package/core/built/admin/assets/overview-BQPt_9w3.js +0 -1
- package/core/built/admin/assets/page-header-D6bEqPo2.js +0 -1
- package/core/built/admin/assets/post-analytics-header-BPw_B2_D.js +0 -1
- package/core/built/admin/assets/post-analytics-kp2_--XO.js +0 -1
- package/core/built/admin/assets/post-share-modal-Cave3Z4W.js +0 -1
- package/core/built/admin/assets/preferences-C7h3j_uy.js +0 -5
- package/core/built/admin/assets/profile-B2x4q2oB.js +0 -1
- package/core/built/admin/assets/router-provider-5fsX1CYn.js +0 -1
- package/core/built/admin/assets/select-PhPjIBBT.js +0 -1
- package/core/built/admin/assets/settings-D5P9Gwgo.js +0 -6
- package/core/built/admin/assets/settings-zUOzQV5I.js +0 -1
- package/core/built/admin/assets/share-modal-EfpfbuWF.js +0 -1
- package/core/built/admin/assets/social-urls-DgAF08Xc.js +0 -18
- package/core/built/admin/assets/sort-button-WOQYJm2H.js +0 -1
- package/core/built/admin/assets/source-icon-hm8Cj-Gx.js +0 -1
- package/core/built/admin/assets/stats-CnQDb62m.js +0 -1
- package/core/built/admin/assets/stats-view-CCfTJgSe.js +0 -1
- package/core/built/admin/assets/step-1-BGlhY4DS.js +0 -1
- package/core/built/admin/assets/step-2-D3sDEyFH.js +0 -1
- package/core/built/admin/assets/step-3-CvZoUdsc.js +0 -2
- package/core/built/admin/assets/switch-CNjkOmwz.js +0 -1
- package/core/built/admin/assets/table-C5nZYPnW.js +0 -1
- package/core/built/admin/assets/tabs-dtOcExye.js +0 -1
- package/core/built/admin/assets/tags-Dhm0FB_g.js +0 -1
- package/core/built/admin/assets/textarea-CeKw3wmV.js +0 -1
- package/core/built/admin/assets/toggle-group-DfhZIMTW.js +0 -1
- package/core/built/admin/assets/topic-filter-Cxe1Il41.js +0 -1
- package/core/built/admin/assets/typeof-Ca-duI-z.js +0 -1
- package/core/built/admin/assets/use-filter-params-Bub6BqNy.js +0 -1
- package/core/built/admin/assets/use-growth-stats-BJORomv0.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-B89YjVoo.js +0 -1
- package/core/built/admin/assets/use-simple-pagination-BL2SYXKi.js +0 -1
- package/core/built/admin/assets/virtual-list-DNJOSK9I.js +0 -1
- package/core/built/admin/assets/web-BHUE3YQc.js +0 -1
- package/core/server/adapters/scheduling/scheduling-base.js +0 -5
- package/core/server/adapters/sso/SSOBase.js +0 -5
- package/core/server/adapters/storage/index.js +0 -17
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{t as r}from"./jsx-runtime-DX3WBWVO.js";import{p as i}from"./hooks-BApwwBE0.js";import{t as a}from"./use-tinybird-query-Dz156HvZ.js";import{n as o}from"./posts-EWpZIjkr.js";import{t as s}from"./analytics-53FOa2wq.js";import{f as c}from"./dist-DGzPJ_bO.js";import{Ar as l,Dr as u,En as d,Er as f,Ir as p,Jn as m,Or as h,Sn as g,Xs as _,kr as v,wr as y}from"./index-BBf502Wg.js";import{t as b}from"./share-modal-CkdTTMJd.js";import{t as x}from"./pages-BbNWFcGj.js";import{n as S,r as C}from"./gift-links-nBxJjZiQ.js";import{t as w}from"./constants-c-JNF9c2.js";var T=e(n(),1);function E(e,t){return!e||!t?``:`${e}?gift=${encodeURIComponent(t)}`}var D={members:`members-only`,paid:`paid-members-only`,tiers:`paid-members-only`};function O(e){return e&&D[e]||``}var k=({postUuid:e,token:t,tokenLoading:n=!1,tokenError:r=null,enabled:i=!0})=>{let{data:o,isLoading:s}=_(),c=o?.config?.stats,{data:l,isLoading:u}=d(),f=g(l?.settings??null,`web_analytics_enabled`)??!1,p=(0,T.useMemo)(()=>({site_uuid:c?.id||``,post_uuid:e||``,gift_link:t||``}),[c?.id,e,t]),{data:m,loading:h,error:v}=a({endpoint:`api_gift_link_visits`,statsConfig:c||{id:``},params:p,enabled:i&&f&&!!c?.id&&!!e&&!!t}),y=h||s||u||n,b=v||r||null;return{usage:(0,T.useMemo)(()=>{if(!f||!t||b||!Array.isArray(m))return;let e=m[0];return{visits:Number(e?.visits)||0,views:Number(e?.views)||0}},[m,t,b,f]),loading:y,error:b}},A=({postId:e,resource:t=`posts`,enabled:n=!0})=>{let r=t===`posts`,{data:i,isLoading:a}=o({searchParams:{filter:`id:${e}`,include:w},enabled:n&&r}),{data:s,isLoading:c}=x({searchParams:{filter:`id:${e}`},enabled:n&&!r});if(r){let e=i?.posts?.[0];return{post:e&&{url:e.url,title:e.title,visibility:e.visibility,uuid:e.uuid},isLoading:a}}let l=s?.pages?.[0];return{post:l&&{url:l.url,title:l.title,visibility:l.visibility,uuid:l.uuid},isLoading:c}},j=t({default:()=>P}),M=r();function N(e){return e===0?`No visitors yet`:`${c(e)} ${e===1?`visitor`:`visitors`}`}var P=({open:e,onOpenChange:t,postId:n,resource:r=`posts`,source:a})=>{let o=i(),{mutateAsync:c}=C(),{mutateAsync:d}=S(),{post:g}=A({postId:n,resource:r,enabled:e}),[_,x]=(0,T.useState)(void 0),[w,D]=(0,T.useState)(`idle`),[O,j]=(0,T.useState)(!1),[P,F]=(0,T.useState)(!1),I=(0,T.useRef)(null),L=(0,T.useRef)(null),{usage:R}=k({postUuid:g?.uuid,token:_,enabled:e});(0,T.useEffect)(()=>{if(!e){L.current=null,F(!1);return}let t=L.current;(t?.postId!==n||t.resource!==r)&&(t={postId:n,resource:r,request:c({id:n,resource:r})},L.current=t);let i=!1;return F(!0),t.request.then(e=>{i||x(e.gift_links[0]?.token)}).catch(e=>{i||o(e)}).finally(()=>{i||F(!1)}),()=>{i=!0}},[e,n,r,c,o]),(0,T.useEffect)(()=>{w===`confirm`&&I.current?.focus()},[w]);let z=r===`pages`?`page`:`post`,B=g?.visibility??`unknown`,V=(0,T.useRef)(!1);(0,T.useEffect)(()=>{if(!e){V.current=!1;return}V.current||!g||(V.current=!0,s(`Gift Link Modal Opened`,{postType:z,visibility:B,source:a}))},[e,g,z,B,a]);let H=E(g?.url,_),U=`Anyone you share this link with will be able to access this ${z} without becoming a ${g?.visibility===`members`?`member`:`paid member`}.`,W=(0,T.useCallback)(async()=>{if(!O){j(!0);try{let e=await d({id:n,resource:r});x(e.gift_links[0]?.token),D(`idle`),s(`Gift Link Reset`,{postType:z,visibility:B,source:a})}catch(e){o(e)}finally{j(!1)}}},[O,d,n,r,o,z,B,a]),G=(0,T.useCallback)(e=>{e||D(`idle`),t(e)},[t]);return(0,M.jsx)(y,{open:e,onOpenChange:G,children:(0,M.jsxs)(f,{className:`max-w-lg gap-5`,children:[w===`idle`&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(v,{className:`gap-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(l,{className:`text-xl leading-none`,children:`Gift link`}),R&&(0,M.jsx)(m,{"data-testid":`gift-link-views`,variant:`secondary`,children:N(R.visits)})]}),(0,M.jsx)(u,{className:`text-sm leading-5`,children:U})]}),(0,M.jsx)(b.CopyURLBox,{className:`w-full min-w-0`,copyURL:P?`Generating link…`:H,children:(0,M.jsx)(b.CopyButton,{className:`shrink-0`,copyURL:H,"data-testid":`copy-gift-link`,disabled:P||!H,icon:`link`,size:`sm`,onClick:()=>s(`Gift Link Copied`,{postType:z,visibility:B,source:a})})}),(0,M.jsxs)(h,{className:`sm:items-center sm:justify-between`,children:[(0,M.jsx)(p,{className:`border-destructive/20 text-destructive hover:border-destructive hover:bg-transparent hover:text-destructive dark:border-state-danger/50 dark:text-state-danger dark:hover:border-state-danger dark:hover:bg-transparent dark:hover:text-state-danger`,"data-testid":`reset-gift-link`,disabled:!H,variant:`outline`,onClick:()=>D(`confirm`),children:`Reset`}),(0,M.jsx)(p,{variant:`outline`,onClick:()=>G(!1),children:`Close`})]})]}),w===`confirm`&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(v,{children:[(0,M.jsx)(l,{children:`Reset gift link`}),(0,M.jsxs)(u,{children:[`Are you sure you want to reset this link? Anyone with the current link will lose access to this `,z,`.`]})]}),(0,M.jsxs)(h,{children:[(0,M.jsx)(p,{ref:I,disabled:O,variant:`outline`,onClick:()=>D(`idle`),children:`Cancel`}),(0,M.jsx)(p,{"data-testid":`confirm-reset-gift-link`,disabled:O,variant:`destructive`,onClick:()=>{W()},children:O?`Resetting`:`Reset link`})]})]})]})})};export{O as i,j as n,k as r,P as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{i as e,n as t}from"./hooks-
|
|
1
|
+
import{i as e,n as t}from"./hooks-BApwwBE0.js";var n=`GiftLinksResponseType`,r=({id:e,resource:t=`posts`})=>`/${t}/${e}/gift_links/`,i=e({dataType:n,path:e=>r({id:e})}),a=(e,t)=>{let n=i(e,t),r=n.data?.gift_links?.[0];return{...n,giftLink:r,token:r?.token}},o=t({method:`PUT`,path:r,invalidateQueries:{dataType:n}}),s=t({method:`POST`,path:r,invalidateQueries:{dataType:n}}),c=t({method:`PUT`,path:()=>`/gift_links/remove_all/`,invalidateQueries:{dataType:n}});export{c as i,s as n,o as r,a 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{i as r,n as i,t as a}from"./source-icon-CHr9qJ2Y.js";import{m as o}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as s}from"./router-provider-C1R4AZ2o.js";import{c,f as l}from"./dist-DGzPJ_bO.js";import{a as u,i as d,n as f,o as p,r as m,t as h}from"./card-DGoDJzrn.js";import{t as g}from"./empty-indicator-oX1u1Pkn.js";import{a as _,c as v,n as y,r as b,s as x,t as S}from"./table-B8LgTQJZ.js";import{Fn as C,In as w,Ir as T,Jo as E,Li as D,Mn as O,Nn as k,Pn as A,Wi as j,Wn as M,Zs as N,da as P,jn as F,nr as I,tr as L,zi as ee}from"./index-BBf502Wg.js";import{t as R}from"./disabled-sources-indicator-NkOIoMue.js";import{t as z}from"./use-analytics-data-CaT8RirX.js";import{t as B}from"./member-route-0Aa52Ntz.js";import{a as V,i as H,n as U,r as W,t as G}from"./kpi-card-CIGyijjx.js";import{r as K,t as q}from"./post-analytics-header-D9pJ4iNm.js";import{n as J,t as Y}from"./use-post-referrers-BV54YcQS.js";var X=e(t(),1),Z=n(),Q=`https://www.google.com/s2/favicons?domain=ghost.org&sz=64`,$=({headerStyle:e=`table`,children:t=`Source`,data:n,mode:r,defaultSourceIconUrl:i=Q})=>{let{appSettings:o}=N();if(r===`growth`)return(0,Z.jsxs)(S,{children:[(0,Z.jsx)(x,{children:(0,Z.jsxs)(v,{children:[(0,Z.jsx)(_,{className:`min-w-[320px]`,variant:e===`table`?`default`:`cardhead`,children:t}),(0,Z.jsx)(_,{className:`w-[110px] text-right`,children:`Free members`}),o?.paidMembersEnabled&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(_,{className:`w-[110px] text-right`,children:`Paid members`}),(0,Z.jsx)(_,{className:`w-[100px] text-right`,children:`MRR impact`})]})]})}),(0,Z.jsx)(y,{children:n?.map(e=>(0,Z.jsxs)(v,{className:`last:border-none`,children:[(0,Z.jsx)(b,{children:e.linkUrl?(0,Z.jsxs)(`a`,{className:`group flex items-center gap-2`,href:e.linkUrl,rel:`noreferrer`,target:`_blank`,children:[(0,Z.jsx)(a,{defaultSourceIconUrl:i,displayName:e.displayName,iconSrc:e.iconSrc}),(0,Z.jsx)(`span`,{className:`group-hover:underline`,children:e.displayName})]}):(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(a,{defaultSourceIconUrl:i,displayName:e.displayName,iconSrc:e.iconSrc}),(0,Z.jsx)(`span`,{children:e.displayName})]})}),(0,Z.jsxs)(b,{className:`text-right font-mono text-sm`,children:[`+`,l(e.free_members||0)]}),o?.paidMembersEnabled&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(b,{className:`text-right font-mono text-sm`,children:[`+`,l(e.paid_members||0)]}),(0,Z.jsxs)(b,{className:`text-right font-mono text-sm`,children:[`+$`,l((e=>Math.round(e/100))(e.mrr||0))]})]})]},e.source))})]})},te=({title:e=`Top sources`,description:t,data:n,mode:a=`visits`,range:o=30,totalVisitors:s=0,siteUrl:l,siteIcon:_,defaultSourceIconUrl:v=Q,getPeriodText:y,className:b})=>{let{appSettings:x}=N(),S=X.useMemo(()=>r({data:n,mode:a,siteUrl:l,siteIcon:_,defaultSourceIconUrl:v}),[n,l,_,a,v]),E=X.useMemo(()=>i({processedData:S,totalVisitors:s,mode:a}),[S,s,a]),D=E.slice(0,10),M=t||(a===`growth`?`Where did your growth come from?`:`How readers found your ${o?`site`:`post`}${o&&y?` ${y(o)}`:``}`),I=a===`growth`?`Sources`:`Top sources`,L=a===`growth`?`Where did your growth come from?`:`How readers found your ${o?`site`:`post`}${o&&y?` ${y(o)}`:``}`;return(0,Z.jsxs)(h,{className:c(`group/datalist w-full max-w-[calc(100vw-64px)] overflow-x-auto sidebar:max-w-[calc(100vw-64px-280px)]`,b),"data-testid":`top-sources-card`,children:[D.length<=0&&(0,Z.jsxs)(u,{children:[(0,Z.jsx)(p,{children:e}),(0,Z.jsx)(m,{children:M})]}),(0,Z.jsx)(f,{children:a===`growth`&&!x?.analytics.membersTrackSources?(0,Z.jsx)(R,{className:`py-10`}):D.length>0?(0,Z.jsx)($,{data:D,defaultSourceIconUrl:v,getPeriodText:y,headerStyle:`card`,mode:a,range:o,children:(0,Z.jsxs)(u,{children:[(0,Z.jsx)(p,{children:e}),(0,Z.jsx)(m,{children:M})]})}):(0,Z.jsx)(`div`,{className:`py-20 text-center text-sm text-gray-700`,children:(0,Z.jsx)(g,{className:`h-full`,description:a===`growth`&&`Once someone signs up on this post, sources will show here`,title:`No sources data available ${y?y(o):``}`,children:(0,Z.jsx)(j,{strokeWidth:1.5})})})}),E.length>10&&(0,Z.jsx)(d,{children:(0,Z.jsxs)(F,{children:[(0,Z.jsx)(w,{asChild:!0,children:(0,Z.jsxs)(T,{variant:`outline`,children:[`View all `,(0,Z.jsx)(P,{})]})}),(0,Z.jsxs)(O,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,Z.jsxs)(A,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,Z.jsx)(C,{children:I}),(0,Z.jsx)(k,{children:L})]}),(0,Z.jsx)(`div`,{className:`group/datalist`,children:(0,Z.jsx)($,{data:E,defaultSourceIconUrl:v,getPeriodText:y,mode:a,range:o})})]})]})})]})},ne=()=>{let{site:e}=z(),{postId:t}=o(),{stats:n,totals:r,isLoading:i,currencySymbol:a}=Y(t||``),{appSettings:c}=N(),d=s(),g=e=>d(B({filter:e})),_=e.url,v=e.icon,y=`flex flex-col items-stretch gap-6`,b=``;return c?.paidMembersEnabled||(y=`grid grid-cols-1 border rounded-md`,b=`border-none hover:shadow-none`),(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(q,{currentTab:`Growth`}),(0,Z.jsx)(K,{children:i?(0,Z.jsxs)(`div`,{className:y,children:[(0,Z.jsx)(h,{className:b,children:(0,Z.jsx)(f,{className:`grid grid-cols-3 p-0`,children:Array.from({length:3},(e,t)=>(0,Z.jsxs)(`div`,{className:`h-[98px] gap-1 border-r px-6 py-5 last:border-r-0`,children:[(0,Z.jsx)(L,{className:`w-2/3`}),(0,Z.jsx)(L,{className:`h-7 w-12`})]},t))})}),(0,Z.jsxs)(h,{className:b,children:[(0,Z.jsxs)(u,{children:[(0,Z.jsx)(p,{children:`Top sources`}),(0,Z.jsx)(m,{children:`Where did your growth come from?`})]}),(0,Z.jsxs)(f,{children:[(0,Z.jsx)(M,{}),(0,Z.jsx)(I,{className:`pt-6`})]})]})]}):(0,Z.jsxs)(`div`,{className:y,children:[(0,Z.jsxs)(h,{className:b,"data-testid":`members-card`,children:[(0,Z.jsxs)(u,{className:`hidden`,children:[(0,Z.jsx)(p,{children:`Newsletters`}),(0,Z.jsx)(m,{children:`How did this post perform`})]}),(0,Z.jsx)(f,{className:`p-0`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col md:grid md:items-stretch ${c?.paidMembersEnabled?`md:grid-cols-3`:`md:grid-cols-1`}`,children:[(0,Z.jsxs)(G,{className:`grow`,children:[(0,Z.jsx)(H,{onClick:()=>{g(`signup:'${t}'+conversion:-'${t}'`)},children:`View members →`}),(0,Z.jsxs)(W,{onClick:()=>{g(`signup:'${t}'+conversion:-'${t}'`)},children:[(0,Z.jsx)(ee,{strokeWidth:1.5}),`Free members`]}),(0,Z.jsx)(U,{children:(0,Z.jsx)(V,{children:l(r?.free_members||0)})})]}),c?.paidMembersEnabled&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(G,{className:`grow`,children:[(0,Z.jsx)(H,{onClick:()=>{g(`conversion:'${t}'`)},children:`View members →`}),(0,Z.jsxs)(W,{onClick:()=>{g(`conversion:'${t}'`)},children:[(0,Z.jsx)(D,{strokeWidth:1.5}),`Paid members`]}),(0,Z.jsx)(U,{children:(0,Z.jsx)(V,{children:l(r?.paid_members||0)})})]}),(0,Z.jsxs)(G,{className:`grow`,children:[(0,Z.jsxs)(W,{children:[(0,Z.jsx)(E,{strokeWidth:1.5}),`MRR`]}),(0,Z.jsx)(U,{children:(0,Z.jsxs)(V,{children:[`+`,a,J(r?.mrr||0)]})})]})]})]})})]}),!c?.paidMembersEnabled&&(0,Z.jsx)(M,{}),(0,Z.jsx)(te,{className:b,data:n,mode:`growth`,siteIcon:v,siteUrl:_})]})})]})};export{ne as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
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{C as r,E as i,S as a,T as o,_ as s,a as c,b as l,c as u,d,f,h as p,i as m,l as h,m as g,n as _,o as v,p as y,r as b,s as x,u as S,v as C,w,x as T,y as E}from"./framework-provider-CmtnPXIT.js";import{n as D}from"./dist-Ndy-PuGN.js";var O=class extends i{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=f(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),k(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return A(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return A(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof E(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!T(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&j(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||E(this.options.enabled,this.#t)!==E(t.enabled,this.#t)||l(this.options.staleTime,this.#t)!==l(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||E(this.options.enabled,this.#t)!==E(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return te(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(s)),t}#g(){this.#b();let e=l(this.options.staleTime,this.#t);if(y.isServer()||this.#r.isStale||!p(e))return;let t=r(this.#r.dataUpdatedAt,e)+1;this.#d=w.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!(y.isServer()||E(this.options.enabled,this.#t)===!1||!p(this.#p)||this.#p===0)&&(this.#f=w.setInterval(()=>{(this.options.refetchIntervalInBackground||o.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d!==void 0&&(w.clearTimeout(this.#d),this.#d=void 0)}#x(){this.#f!==void 0&&(w.clearInterval(this.#f),this.#f=void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},d=!1,p;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&k(e,t),o=i&&j(e,n,t,r);(a||o)&&(l={...l,...u(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:m,errorUpdatedAt:h,status:g}=l;p=l.data;let _=!1;if(t.placeholderData!==void 0&&p===void 0&&g===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,_=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(g=`success`,p=C(i?.data,e,t),d=!0)}if(t.select&&p!==void 0&&!_)if(i&&p===a?.data&&t.select===this.#c)p=this.#l;else try{this.#c=t.select,p=t.select(p),p=C(i?.data,p,t),this.#l=p,this.#s=null}catch(e){this.#s=e}this.#s&&(m=this.#s,p=this.#l,h=Date.now(),g=`error`);let v=l.fetchStatus===`fetching`,y=g===`pending`,b=g===`error`,x=y&&v,S=p!==void 0,w={status:g,fetchStatus:l.fetchStatus,isPending:y,isSuccess:g===`success`,isError:b,isInitialLoading:x,isLoading:x,data:p,dataUpdatedAt:l.dataUpdatedAt,error:m,errorUpdatedAt:h,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:v,isRefetching:v&&!y,isLoadingError:b&&!S,isPaused:l.fetchStatus===`paused`,isPlaceholderData:d,isRefetchError:b&&S,isStale:M(e,t),refetch:this.refetch,promise:this.#o,isEnabled:E(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=w.data!==void 0,r=w.status===`error`&&!t,i=e=>{r?e.reject(w.error):t&&e.resolve(w.data)},a=()=>{let e=this.#o=w.promise=f();i(e)},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||w.data!==o.value)&&a();break;case`rejected`:(!r||w.error!==o.reason)&&a();break}}return w}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!T(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){d.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function ee(e,t){return E(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&E(t.retryOnMount,e)===!1)}function k(e,t){return ee(e,t)||e.state.data!==void 0&&A(e,t,t.refetchOnMount)}function A(e,t,n){if(E(t.enabled,e)!==!1&&l(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&M(e,t)}return!1}function j(e,t,n,r){return(e!==t||E(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&M(e,n)}function M(e,t){return E(t.enabled,e)!==!1&&e.isStaleByTime(l(t.staleTime,e))}function te(e,t){return!T(e.getCurrentResult(),t)}var ne=class extends O{constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){e._type=`infinite`,super.setOptions(e)}getOptimisticResult(e){return e._type=`infinite`,super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`forward`}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:`backward`}}})}createResult(e,t){let{state:n}=e,r=super.createResult(e,t),{isFetching:i,isRefetching:a,isError:o,isRefetchError:s}=r,c=n.fetchMeta?.fetchMore?.direction,l=o&&c===`forward`,u=i&&c===`forward`,d=o&&c===`backward`,f=i&&c===`backward`;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:h(t,n.data),hasPreviousPage:S(t,n.data),isFetchNextPageError:l,isFetchingNextPage:u,isFetchPreviousPageError:d,isFetchingPreviousPage:f,isRefetchError:s&&!l&&!d,isRefetching:a&&!u&&!f}}},re=class extends i{#e;#t=void 0;#n;#r;constructor(e,t){super(),this.#e=e,this.setOptions(t),this.bindMethods(),this.#i()}bindMethods(){this.mutate=this.mutate.bind(this),this.reset=this.reset.bind(this)}setOptions(e){let t=this.options;this.options=this.#e.defaultMutationOptions(e),T(this.options,t)||this.#e.getMutationCache().notify({type:`observerOptionsUpdated`,mutation:this.#n,observer:this}),t?.mutationKey&&this.options.mutationKey&&g(t.mutationKey)!==g(this.options.mutationKey)?this.reset():this.#n?.state.status===`pending`&&this.#n.setOptions(this.options)}onUnsubscribe(){this.hasListeners()||this.#n?.removeObserver(this)}onMutationUpdate(e){this.#i(),this.#a(e)}getCurrentResult(){return this.#t}reset(){this.#n?.removeObserver(this),this.#n=void 0,this.#i(),this.#a()}mutate(e,t){return this.#r=t,this.#n?.removeObserver(this),this.#n=this.#e.getMutationCache().build(this.#e,this.options),this.#n.addObserver(this),this.#n.execute(e)}#i(){let e=this.#n?.state??x();this.#t={...e,isPending:e.status===`pending`,isSuccess:e.status===`success`,isError:e.status===`error`,isIdle:e.status===`idle`,mutate:this.mutate,reset:this.reset}}#a(e){d.batch(()=>{if(this.#r&&this.hasListeners()){let t=this.#t.variables,n=this.#t.context,r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};if(e?.type===`success`){try{this.#r.onSuccess?.(e.data,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(e.data,null,t,n,r)}catch(e){Promise.reject(e)}}else if(e?.type===`error`){try{this.#r.onError?.(e.error,t,n,r)}catch(e){Promise.reject(e)}try{this.#r.onSettled?.(void 0,e.error,t,n,r)}catch(e){Promise.reject(e)}}}this.listeners.forEach(e=>{e(this.#t)})})}};n();var N=e(t(),1),ie=N.createContext(!1),ae=()=>N.useContext(ie);ie.Provider;function oe(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var se=N.createContext(oe()),ce=()=>N.useContext(se),le=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?a(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},ue=e=>{N.useEffect(()=>{e.clearReset()},[e])},de=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||a(n,[e.error,r])),fe=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},pe=(e,t)=>e.isLoading&&e.isFetching&&!t,me=(e,t)=>e?.suspense&&t.isPending,P=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function F(e,t,n){let r=ae(),i=ce(),a=v(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let c=a.getQueryCache().get(o.queryHash),l=e.subscribed!==!1;o._optimisticResults=r?`isRestoring`:l?`optimistic`:void 0,fe(o),le(o,i,c),ue(i);let u=!a.getQueryCache().get(o.queryHash),[f]=N.useState(()=>new t(a,o)),p=f.getOptimisticResult(o),m=!r&&l;if(N.useSyncExternalStore(N.useCallback(e=>{let t=m?f.subscribe(d.batchCalls(e)):s;return f.updateResult(),t},[f,m]),()=>f.getCurrentResult(),()=>f.getCurrentResult()),N.useEffect(()=>{f.setOptions(o)},[o,f]),me(o,p))throw P(o,f,i);if(de({result:p,errorResetBoundary:i,throwOnError:o.throwOnError,query:c,suspense:o.suspense}))throw p.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,p),o.experimental_prefetchInRender&&!y.isServer()&&pe(p,r)&&(u?P(o,f,i):c?.promise)?.catch(s).finally(()=>{f.updateResult()}),o.notifyOnChangeProps?p:f.trackResult(p)}function I(e,t){return F(e,O,t)}function L(e,t){let n=v(t),[r]=N.useState(()=>new re(n,e));N.useEffect(()=>{r.setOptions(e)},[r,e]);let i=N.useSyncExternalStore(N.useCallback(e=>r.subscribe(d.batchCalls(e)),[r]),()=>r.getCurrentResult(),()=>r.getCurrentResult()),o=N.useCallback((e,t)=>{r.mutate(e,t).catch(s)},[r]);if(i.error&&a(r.options.throwOnError,[i.error]))throw i.error;return{...i,mutate:o,mutateAsync:i.mutate}}function R(e,t){return F(e,ne,t)}var z=class extends Error{response;data;constructor(e,t,n,r){!n&&e&&e.url.includes(`/ghost/api/admin/`)&&(n=`Something went wrong while loading ${e.url.replace(/.+\/ghost\/api\/admin\//,``).replace(/\W.*/,``).replace(`_`,` `)}, please try again.`),super(n||`Something went wrong, please try again.`,r),this.response=e,this.data=t}},B=class extends z{data;constructor(e,t,n,r){super(e,t,n,r),this.data=t}},he=class extends B{constructor(e,t,n){super(e,t,`API server is running a newer version of Ghost, please upgrade.`,n)}},V=class extends z{constructor(e){super(void 0,void 0,`Something went wrong, please try again.`,e)}},ge=class extends z{constructor(e){super(void 0,void 0,`Request timed out, please try again.`,e)}},H=class extends z{constructor(e,t,n){super(e,t,`Request is larger than the maximum file size the server allows`,n)}},_e=class extends z{constructor(e,t,n){super(e,t,`Request contains an unknown or unsupported file type.`,n)}},U=class extends z{constructor(e,t,n){super(e,t,`Ghost is currently undergoing maintenance, please wait a moment then retry.`,n)}},W=class extends z{constructor(e,t,n){super(e,t,`You are not authorised to make this request.`,n)}},G=class extends W{},ve=class extends B{constructor(e,t,n){super(e,t,`Theme is not compatible or contains errors.`,n)}},K=class extends B{constructor(e,t,n){super(e,t,`A hosting plan limit was reached or exceeded.`,n)}},ye=class extends B{constructor(e,t,n){super(e,t,`Please verify your email settings`,n)}},q=class extends B{constructor(e,t,n){super(e,t,t.errors[0].message,n)}};function J(e,t){return e instanceof q&&e.data?.errors[0]?e.data.errors[0].context||e.data.errors[0].message:t}var be=class extends Error{constructor(e){super(e)}};function xe(e){D.dismiss(),D.error(e)}var Y=()=>{let{sentryDSN:e}=_();return(0,N.useCallback)((t,{withToast:n=!0}={})=>{console.error(t),e&&!(t instanceof G)&&c(e=>{t instanceof z&&t.response&&(e.setTag(`api_url`,t.response.url),e.setTag(`api_response_status`,t.response.status)),b(t)}),n&&(t instanceof z&&t.response?.status===418||t instanceof G?D.dismiss():t instanceof z?xe(J(t,t.message)):xe(`Something went wrong, please try again.`))},[e])};function X(){let e=window.location.pathname,t=e.substr(0,e.search(`/ghost/`));return{subdir:t,adminRoot:`${t}/ghost/`,assetRoot:`${t}/ghost/assets/`,apiRoot:`${t}/ghost/api/admin`,activityPubRoot:`${t}/.ghost/activitypub`}}function Se(e){let t=document.getElementById(`iframeDownload`);t||(t=document.createElement(`iframe`),t.id=`iframeDownload`,t.style.display=`none`,document.body.append(t)),t.setAttribute(`src`,e)}function Ce(e){Se(`${X().apiRoot}${e}`)}function we(e){if(!e)return;let t=e.match(/filename\*=([^;]+)/i);if(t?.[1]){let e=t[1].trim(),n=e.indexOf(`'`),r=n===-1?-1:e.indexOf(`'`,n+1),i=r===-1?e:e.slice(r+1);try{return decodeURIComponent(i.replace(/^["']|["']$/g,``))}catch{}}let n=e.match(/filename="([^"]*)"/i);if(n?.[1])return n[1].trim();let r=e.match(/filename=([^;]+)/i);if(r?.[1])return r[1].trim()}async function Te(e,t){let n=await fetch(e,{method:`GET`});if(!n.ok)throw Error(`Download failed: ${n.status} ${n.statusText}`);let r=we(n.headers.get(`content-disposition`))??t??`download`,i=await n.blob(),a=window.URL.createObjectURL(i),o=document.createElement(`a`);o.href=a,o.download=r,document.body.appendChild(o),o.click(),o.remove(),window.URL.revokeObjectURL(a)}async function Ee(e,t){return Te(`${X().apiRoot}${e}`,t)}var De=async e=>{if(e.status===0)throw new V;if(e.status===503)throw new U(e,await e.text());if(e.status===415)throw new _e(e,await e.text());if(e.status===413)throw new H(e,await e.text());if(e.status===401)throw e.headers.get(`content-type`)?.includes(`json`)?new W(e,await e.json()):new W(e,await e.text());if(!e.ok){if(!e.headers.get(`content-type`)?.includes(`json`))throw new z(e,await e.text());let t=await e.json();throw e.status===403&&t.errors?.[0]?.message===`Authorization failed`?new W(e,t):t.errors?.[0]?.type===`VersionMismatchError`?new he(e,t):t.errors?.[0]?.type===`ValidationError`||t.errors?.[0]?.type===`NoPermissionError`?new q(e,t):t.errors?.[0]?.type===`ThemeValidationError`?new ve(e,t):t.errors?.[0]?.type===`HostLimitError`?new K(e,t):t.errors?.[0]?.type===`EmailError`?new ye(e,t):new B(e,t)}else if(e.status===204)return;else if(e.headers.get(`content-type`)?.includes(`text/csv`))return await e.text();else return await e.json()},Oe=e=>{let t=new Headers,n=e.getAllResponseHeaders()?.split(`\r
|
|
2
|
+
`)||[];for(let e of n){let n=e.indexOf(`:`);if(n===-1)continue;let r=e.slice(0,n),i=e.slice(n+1).trim();t.append(r,i)}return t},ke=e=>new Response(e.response,{status:e.status,statusText:e.statusText,headers:Oe(e)}),Ae=/\/ghost\/api\//,je=/\/ghost\/api\/admin\/session([/?#]|$)/,Me=/^#\/(?:reset|setup|signin|signup)(?:[/?]|$)/,Ne=!1,Pe=e=>window.location.pathname===e&&(!window.location.hash||window.location.hash===`#/`||Me.test(window.location.hash)),Fe=e=>{let t=e.toString();return Ae.test(t)&&!je.test(t)},Ie=()=>{let{adminRoot:e}=X();!Ne&&!Pe(e)&&(Ne=!0,window.location.replace(e))},Le=(e,t,{method:n,headers:r,credentials:i,body:a,signal:o})=>new Promise((s,c)=>{let l=()=>{c(new DOMException(`Aborted`,`AbortError`))};if(o.aborted){l();return}let u=new XMLHttpRequest;switch(u.open(n,t.toString(),!0),i){case`omit`:throw Error(`"omit" credentials cannot be represented with legacy XMLHttpRequest. Consider "same-origin".`);case`same-origin`:u.withCredentials=!1;break;case`include`:u.withCredentials=!0;break;default:throw Error(i)}u.responseType=`arraybuffer`;for(let[e,t]of Object.entries(r))u.setRequestHeader(e,t);u.upload.onprogress=t=>{t.lengthComputable&&e(t.loaded/t.total*100)},u.onload=()=>{s(ke(u))},u.onerror=()=>{c(TypeError(`Network request failed`))},u.onabort=l;let d=()=>u.abort();o.addEventListener(`abort`,d),u.onloadend=()=>{o.removeEventListener(`abort`,d)},u.send(a)}),Z=()=>{let{ghostVersion:e,sentryDSN:t}=_();return(0,N.useCallback)(async(n,{method:r=`GET`,headers:i={},body:a,credentials:o=`include`,timeout:s,retry:c=!0,onUploadProgress:l}={})=>{let u=new AbortController,d={method:r,headers:{"app-pragma":`no-cache`,...e?{"x-ghost-version":e}:{},...typeof a==`string`?{"content-type":`application/json`}:{},...i},credentials:o,mode:`cors`,body:a,signal:u.signal},f=0,p=0,h=Date.now(),g=[500,1e3],_=[V,U,TypeError],v=(e,t)=>{let r={errorName:e?.name,attempts:f,totalSeconds:p/1e3,endpoint:n.toString()};return n.toString().includes(`/ghost/api/`)&&(r.server=t?.headers.get(`server`)),r},y=l?Le.bind(null,l):fetch,b=s?setTimeout(()=>u.abort(),s):void 0;try{for(;f===0||c;)try{return await De(await y(n,d))}catch(e){if(p=Date.now()-h,c&&_.some(t=>e instanceof t)&&p<=15e3){await new Promise(e=>{setTimeout(e,g[f]||g[g.length-1])}),f+=1;continue}if(f!==0&&t&&m(`Request failed after multiple attempts`,{extra:v()}),e&&typeof e==`object`&&`name`in e&&e.name===`AbortError`)throw new ge;if(e instanceof W&&Fe(n))throw Ie(),new G(e.response,e.data,{cause:e});let r=e;throw e instanceof z||(r=new V({cause:e})),r}}finally{clearTimeout(b)}},[e,t])},{apiRoot:Re,activityPubRoot:ze}=X(),Q=(e,t={},n=!1)=>{let r=new URL(`${n?ze:Re}${e}`,window.location.origin);return r.search=new URLSearchParams(t).toString(),r.toString()},Be=`UsersResponseType`,Ve=Q(`/users/me/`,{include:`roles`}),He=[Be,Ve],Ue=()=>{let e=Z(),t=Y(),n=I({queryKey:He,queryFn:()=>e(Ve),select:e=>e.users[0]});return(0,N.useEffect)(()=>{n.error&&t(n.error)},[t,n.error]),n},We=e=>{let{data:t}=Ue();if(!e||e.length===0)return!0;let n=t?.roles.map(e=>e.name);return n?e.some(e=>n.includes(e)):!1},$=e=>({searchParams:t,...n}={})=>{let r=Q(e.path,t||e.defaultSearchParams,e?.useActivityPub),i=Z(),a=Y(),o=We(e.permissions),s=I({...n,enabled:o&&(n.enabled??!0),queryKey:[e.dataType,r],queryFn:()=>i(r,{...e})}),c=(0,N.useMemo)(()=>s.data&&e.returnData?e.returnData(s.data):s.data,[s.data]);return(0,N.useEffect)(()=>{s.error&&n.defaultErrorHandler!==!1&&a(s.error)},[a,s.error,n.defaultErrorHandler]),{...s,data:c}},Ge=e=>({searchParams:t,getNextPageParams:n,...r}={})=>{let i=Z(),a=Y(),o=We(e.permissions),s=n||e.defaultNextPageParams||(()=>({})),c=R({...r,enabled:o&&(r.enabled??!0),queryKey:[e.dataType,Q(e.path,t||e.defaultSearchParams,e?.useActivityPub)],queryFn:({pageParam:n})=>i(Q(e.path,n||t||e.defaultSearchParams,e?.useActivityPub)),initialPageParam:void 0,getNextPageParam:n=>s(n,t||e.defaultSearchParams||{})}),l=(0,N.useMemo)(()=>c.data&&e.returnData(c.data),[c.data]);return(0,N.useEffect)(()=>{c.error&&r.defaultErrorHandler!==!1&&a(c.error)},[a,c.error,r.defaultErrorHandler]),{...c,data:l}},Ke=e=>(t,{searchParams:n,...r}={})=>$({...e,path:e.path(t)})({searchParams:n||e.defaultSearchParams,...r}),qe=({fetchApi:e,path:t,payload:n,searchParams:r,options:i})=>{let{defaultSearchParams:a,body:o,...s}=i,c=Q(t,r||a,i?.useActivityPub),l=n&&o?.(n),u;return l instanceof FormData?u=l:l&&(u=JSON.stringify(l)),e(c,{body:u,...s})},Je=({path:e,searchParams:t,defaultSearchParams:n,updateQueries:r,invalidateQueries:i,...a})=>()=>{let o=Z(),s=v(),{onUpdate:c,onInvalidate:l,onDelete:u}=_();return L({mutationFn:r=>qe({fetchApi:o,path:e(r),payload:r,searchParams:t?.(r)||n,options:a}),onSuccess:(0,N.useCallback)((e,t)=>{if(i&&`dataType`in i?(s.invalidateQueries({queryKey:[i.dataType]}),l(i.dataType)):i&&s.invalidateQueries(i.filters,i.options),r){if(s.setQueriesData({queryKey:[r.dataType]},n=>r.update(e,n,t)),r.emberUpdateType===`createOrUpdate`)c(r.dataType,e);else if(r.emberUpdateType===`delete`){if(typeof t!=`string`)throw Error(`Expected delete mutation to have a string (ID) payload. Either change the payload or update the createMutation hook`);u(r.dataType,t)}}},[l,c,u,s])})};export{I as C,L as S,B as _,Ue as a,J as b,Z as c,Ce as d,X as f,K as g,be as h,Ke as i,Ee as l,z as m,Je as n,Be as o,Y as p,$ as r,Q as s,Ge as t,Se as u,H as v,R as x,q as y};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{t as r}from"./jsx-runtime-
|
|
1
|
+
import{o as e,r as t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{t as r}from"./jsx-runtime-DX3WBWVO.js";import{m as i}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{s as a}from"./router-provider-C1R4AZ2o.js";import{t as o}from"./empty-indicator-oX1u1Pkn.js";import{$ as s,Ar as c,B as l,Ct as u,Dr as d,Dt as f,Er as p,F as m,Gt as h,Ht as g,Ir as _,Ja as v,Kt as y,Na as b,Pt as x,Q as S,R as ee,Ut as C,Wn as te,Wt as w,Y as T,Z as ne,_r as E,at as D,er as re,et as O,hr as k,it as A,kr as j,lt as ie,nt as M,ot as ae,rt as N,tr as P,tt as oe,ut as se,vr as F,wr as I,xo as L,zs as R}from"./index-BBf502Wg.js";import"./layout-Bw4GnxXp.js";import{t as z}from"./topic-filter-DZGjEcz3.js";import{i as ce,n as le,r as ue,t as de}from"./use-reply-chain-data-DuYZGDan.js";var B=e(n(),1),V=r(),H=[`1.5rem`,`1.6rem`,`1.7rem`,`1.8rem`,`2rem`],U={BACKGROUND_COLOR:`ghost-ap-background-color`,FONT_SIZE:`ghost-ap-font-size`,FONT_FAMILY:`ghost-ap-font-family`,FONT_STYLE:`ghost-ap-font-style`},W={SYSTEM:{id:`system`,color:`#fff`,background:`bg-white dark:bg-black`,button:`bg-white dark:bg-black`,border:`border-black/[8%] dark:border-gray-950`},SEPIA:{id:`sepia`,color:`#FCF8F1`,background:`bg-[#FCF8F1]`,button:`bg-[#FCF8F1] hover:bg-black/[3%] text-black hover:text-black`,border:`border-black/[8%]`},LIGHT:{id:`light`,color:`#fff`,background:`bg-white`,button:`hover:bg-black/[3%] text-black hover:text-black`,border:`border-black/[8%] dark:border-gray-950`},DARK:{id:`dark`,color:`#15171a`,background:`bg-black`,button:`text-white dark:bg-black dark:hover:bg-gray-900`,border:`border-black/[8%] dark:border-gray-950`}},fe=()=>{let[e,t]=(0,B.useState)(()=>localStorage.getItem(U.BACKGROUND_COLOR)?.toUpperCase()||`SYSTEM`),[n,r]=(0,B.useState)(()=>{let e=localStorage.getItem(U.FONT_SIZE);return e?parseInt(e):2}),[i,a]=(0,B.useState)(()=>localStorage.getItem(U.FONT_STYLE)||`sans`);return(0,B.useEffect)(()=>{localStorage.setItem(U.FONT_SIZE,n.toString())},[n]),(0,B.useEffect)(()=>{localStorage.setItem(U.FONT_STYLE,i)},[i]),{backgroundColor:e,currentFontSizeIndex:n,fontStyle:i,handleColorChange:e=>{t(e),localStorage.setItem(U.BACKGROUND_COLOR,W[e].id)},setFontStyle:a,increaseFontSize:()=>{r(e=>Math.min(e+1,H.length-1))},decreaseFontSize:()=>{r(e=>Math.max(e-1,0))},resetFontSize:()=>r(2),fontSize:H[n]}},pe=({backgroundColor:e,currentFontSizeIndex:t,fontStyle:n,onColorChange:r,onFontStyleChange:i,onDecreaseFontSize:a,onIncreaseFontSize:o,onResetFontSize:s,onOpenChange:c})=>(0,V.jsx)(G,{backgroundColor:e,currentFontSizeIndex:t,fontStyle:n,isActiveColor:t=>e===t,isActiveFont:e=>n===e,onColorChange:r,onDecreaseFontSize:a,onFontStyleChange:i,onIncreaseFontSize:o,onOpenChange:c,onResetFontSize:s}),G=({backgroundColor:e,isActiveColor:t,isActiveFont:n,onColorChange:r,onFontStyleChange:i,currentFontSizeIndex:a,onDecreaseFontSize:o,onIncreaseFontSize:s,onResetFontSize:c,onOpenChange:l})=>(0,V.jsxs)(k,{modal:!1,onOpenChange:l,children:[(0,V.jsx)(F,{asChild:!0,children:(0,V.jsx)(_,{className:`size-9 rounded-full ${W[e].button}`,variant:`ghost`,children:(0,V.jsx)(R.Typography,{className:`size-[18px]!`})})}),(0,V.jsx)(E,{align:`end`,className:`w-[224px]`,onCloseAutoFocus:e=>e.preventDefault(),onOpenAutoFocus:e=>e.preventDefault(),children:(0,V.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,V.jsxs)(`div`,{className:`flex items-center justify-between gap-[6px]`,children:[(0,V.jsx)(_,{className:`h-7 flex-1 rounded-[6px] bg-gray-200 p-0 text-[1.1rem] text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px] ${t(`SYSTEM`)?`outline-2 outline-green`:``}`,variant:`secondary`,onClick:()=>r(`SYSTEM`),children:`Auto`}),(0,V.jsx)(_,{className:`h-7 flex-1 rounded-[6px] bg-[#ece6d9] p-0 hover:bg-[#ece6d9] ${t(`SEPIA`)?`outline-2 outline-green`:`border border-[#ece6d9]`}`,onClick:()=>r(`SEPIA`)}),(0,V.jsx)(_,{className:`h-7 flex-1 rounded-[6px] bg-white p-0 hover:bg-white ${t(`LIGHT`)?`outline-2 outline-green`:`border border-gray-200`}`,onClick:()=>r(`LIGHT`)}),(0,V.jsx)(_,{className:`h-7 flex-1 rounded-[6px] bg-black p-0 hover:bg-black dark:border dark:border-gray-950 ${t(`DARK`)?`outline-2 outline-green`:``}`,onClick:()=>r(`DARK`)})]}),(0,V.jsxs)(`div`,{className:`flex gap-2`,children:[(0,V.jsxs)(_,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 ${n(`sans`)&&`outline-2 outline-green`}`,variant:`secondary`,onClick:()=>i(`sans`),children:[(0,V.jsx)(`span`,{className:`text-[2rem] leading-none font-bold`,children:`Aa`}),(0,V.jsx)(`span`,{className:`text-[1.1rem]`,children:`System`})]}),(0,V.jsxs)(_,{className:`flex h-auto w-full flex-col gap-1 rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 ${n(`serif`)&&`outline-2 outline-green`}`,variant:`secondary`,onClick:()=>i(`serif`),children:[(0,V.jsx)(`span`,{className:`pt-1 font-serif text-[2rem] leading-none font-bold`,children:`Aa`}),(0,V.jsx)(`span`,{className:`font-serif text-[1.2rem]`,children:`Serif`})]})]}),(0,V.jsxs)(`div`,{className:`flex gap-2`,children:[(0,V.jsx)(_,{className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]`,disabled:a===0,variant:`secondary`,onClick:o,children:(0,V.jsx)(v,{})}),(0,V.jsx)(_,{className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900`,variant:`secondary`,onClick:c,children:(0,V.jsx)(`span`,{className:`text-[1.6rem] font-bold`,children:`Aa`})}),(0,V.jsx)(_,{className:`h-8 w-full rounded-[6px] bg-gray-200 text-black hover:bg-gray-300 dark:bg-gray-950 dark:text-white dark:hover:bg-gray-900 [&_svg]:size-[14px]`,disabled:a===H.length-1,variant:`secondary`,onClick:s,children:(0,V.jsx)(b,{})})]})]})})]}),me=({tocItems:e,iframeElement:t,modalRef:n,className:r=`visible! absolute inset-y-0 right-7 z-40 hidden lg:block!`,onOpenChange:i})=>{let[a,o]=(0,B.useState)(null),s=B.useRef(!1);return(0,B.useEffect)(()=>{if(!t?.contentDocument||e.length<=1)return;let r=n.current;if(!r)return;let i=()=>{if(s.current)return;let n=t.contentDocument;if(!n)return;let i=r.scrollTop,a=e.map(e=>n.getElementById(e.id)).filter(e=>e!==null).map(e=>({id:e.id,top:e.offsetTop}));if(!a.length)return;let c=a.reduce((e,t)=>t.top-100<=i?t:e);o(c?.id||null)},a=()=>{requestAnimationFrame(i)};return r.addEventListener(`scroll`,a),i(),()=>{r.removeEventListener(`scroll`,a)}},[t,e,n]),e.length<=1?null:(0,V.jsx)(`div`,{className:r,children:(0,V.jsx)(`div`,{className:`sticky top-1/2 -translate-y-1/2`,children:(0,V.jsx)(K,{activeHeading:a||``,items:e,onItemClick:e=>{if(!t?.contentDocument)return;let r=t.contentDocument.getElementById(e);r&&n.current&&(s.current=!0,o(e),n.current.scrollTo({top:r.offsetTop-20,behavior:`smooth`}),setTimeout(()=>{s.current=!1},1e3))},onOpenChange:i})})})},he={1:`w-3`,2:`w-2`,3:`w-1`},ge={1:`pl-2`,2:`pl-6`,3:`pl-10`},K=({items:e,activeHeading:t,onItemClick:n,onOpenChange:r})=>{let[i,a]=(0,B.useState)(!1),o=B.useRef();if(B.useEffect(()=>()=>{o.current&&clearTimeout(o.current)},[]),e.length===0)return null;let s=e=>Math.min(e,3),c=e=>he[s(e)],l=e=>ge[s(e)],u=()=>{o.current&&clearTimeout(o.current),a(!0),r?.(!0)},d=()=>{o.current=setTimeout(()=>{a(!1),r?.(!1)},100)};return(0,V.jsxs)(k,{modal:!1,open:i,onOpenChange:a,children:[(0,V.jsx)(F,{asChild:!0,children:(0,V.jsx)(`div`,{className:`absolute top-1/2 right-2 flex -translate-y-1/2 flex-col items-end gap-2 rounded-md p-2 text-base dark:bg-black`,onMouseEnter:u,onMouseLeave:d,children:e.map(e=>(0,V.jsx)(`div`,{className:`h-[2px] rounded-sm ${t===e.id?`bg-black dark:bg-white`:`bg-gray-400 dark:bg-gray-700`} pr-1 transition-all ${c(e.level)}`},e.id))})}),(0,V.jsx)(E,{align:`center`,className:`w-[240px] p-2`,side:`left`,sideOffset:-28,onCloseAutoFocus:e=>e.preventDefault(),onMouseEnter:u,onMouseLeave:d,onOpenAutoFocus:e=>e.preventDefault(),children:(0,V.jsx)(`nav`,{"aria-label":`Table of contents navigation`,className:`max-h-[60vh] overflow-y-auto`,role:`navigation`,children:e.map(e=>(0,V.jsx)(`button`,{className:`line-clamp-2 block w-full cursor-pointer rounded py-1 text-left text-sm leading-tight ${t===e.id?`text-black dark:text-white`:`text-gray-700 dark:text-gray-600`} hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-grey-950 dark:hover:text-white ${l(e.level)}`,type:`button`,onClick:()=>n(e.id),children:(0,V.jsx)(`span`,{className:`line-clamp-2`,children:e.text})},e.id))})})]})},_e=()=>`<style>
|
|
2
2
|
|
|
3
3
|
/* Variables */
|
|
4
4
|
|
|
@@ -583,7 +583,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
583
583
|
font-family: var(--font-serif-alt);
|
|
584
584
|
}
|
|
585
585
|
|
|
586
|
-
</style>`,
|
|
586
|
+
</style>`,ve=t({default:()=>ye}),ye=`(function() {
|
|
587
587
|
const handleAudioPlayer = function (audioElementContainer) {
|
|
588
588
|
const audioPlayerContainer = audioElementContainer.querySelector('.kg-audio-player-container');
|
|
589
589
|
const playIconContainer = audioElementContainer.querySelector('.kg-audio-play-icon');
|
|
@@ -729,7 +729,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
729
729
|
handleAudioPlayer(audioCardElements[i]);
|
|
730
730
|
}
|
|
731
731
|
})();
|
|
732
|
-
`,
|
|
732
|
+
`,be=t({default:()=>q}),q=`(function() {
|
|
733
733
|
const images = document.querySelectorAll('.kg-gallery-image img');
|
|
734
734
|
images.forEach(function (image) {
|
|
735
735
|
const container = image.closest('.kg-gallery-image');
|
|
@@ -739,7 +739,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
739
739
|
container.style.flex = ratio + ' 1 0%';
|
|
740
740
|
})
|
|
741
741
|
})();
|
|
742
|
-
`,
|
|
742
|
+
`,xe=t({default:()=>Se}),Se=`(function() {
|
|
743
743
|
const toggleHeadingElements = document.getElementsByClassName("kg-toggle-heading");
|
|
744
744
|
|
|
745
745
|
const toggleFn = function(event) {
|
|
@@ -757,7 +757,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
757
757
|
toggleHeadingElements[i].addEventListener('click', toggleFn, false);
|
|
758
758
|
}
|
|
759
759
|
})();
|
|
760
|
-
`,
|
|
760
|
+
`,J=t({default:()=>Ce}),Ce=`(function() {
|
|
761
761
|
const handleVideoPlayer = function (videoElementContainer) {
|
|
762
762
|
const videoPlayer = videoElementContainer.querySelector('.kg-video-player');
|
|
763
763
|
const videoPlayerContainer = videoElementContainer.querySelector('.kg-video-player-container');
|
|
@@ -999,7 +999,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
999
999
|
handleVideoPlayer(videoCardElements[i]);
|
|
1000
1000
|
}
|
|
1001
1001
|
})();
|
|
1002
|
-
`,
|
|
1002
|
+
`,Y=t({default:()=>X}),X=`.kg-audio-card,
|
|
1003
1003
|
.kg-audio-card * {
|
|
1004
1004
|
box-sizing: border-box;
|
|
1005
1005
|
}
|
|
@@ -1331,7 +1331,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1331
1331
|
.kg-audio-player-container input[type="range"]:active::-ms-thumb {
|
|
1332
1332
|
transform: scale(1.2);
|
|
1333
1333
|
}
|
|
1334
|
-
`,
|
|
1334
|
+
`,we=t({default:()=>Te}),Te=`.kg-blockquote-alt {
|
|
1335
1335
|
font-size: 1.5em;
|
|
1336
1336
|
font-style: italic;
|
|
1337
1337
|
line-height: 1.7em;
|
|
@@ -1354,7 +1354,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1354
1354
|
padding-right: 1.75em;
|
|
1355
1355
|
}
|
|
1356
1356
|
}
|
|
1357
|
-
`,
|
|
1357
|
+
`,Ee=t({default:()=>Z}),Z=`.kg-bookmark-card,
|
|
1358
1358
|
.kg-bookmark-card * {
|
|
1359
1359
|
box-sizing: border-box;
|
|
1360
1360
|
}
|
|
@@ -1470,7 +1470,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1470
1470
|
left: 0;
|
|
1471
1471
|
border-radius: 0 2px 2px 0;
|
|
1472
1472
|
}
|
|
1473
|
-
`,
|
|
1473
|
+
`,De=t({default:()=>Oe}),Oe=`.kg-button-card,
|
|
1474
1474
|
.kg-button-card * {
|
|
1475
1475
|
box-sizing: border-box;
|
|
1476
1476
|
}
|
|
@@ -1509,7 +1509,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1509
1509
|
.kg-button-card a.kg-btn-accent {
|
|
1510
1510
|
background-color: var(--ghost-accent-color);
|
|
1511
1511
|
color: #fff;
|
|
1512
|
-
}`,
|
|
1512
|
+
}`,ke=t({default:()=>Q}),Q=`.kg-callout-card,
|
|
1513
1513
|
.kg-callout-card * {
|
|
1514
1514
|
box-sizing: border-box;
|
|
1515
1515
|
}
|
|
@@ -1576,7 +1576,7 @@ html.has-light-text .gh-paid-content-notice {
|
|
|
1576
1576
|
|
|
1577
1577
|
.kg-callout-card + .kg-callout-card {
|
|
1578
1578
|
margin-top: 1em;
|
|
1579
|
-
}`,
|
|
1579
|
+
}`,Ae=t({default:()=>je}),je=`.kg-collection-card {
|
|
1580
1580
|
width: 100%;
|
|
1581
1581
|
margin-top: 6vmin;
|
|
1582
1582
|
}
|
|
@@ -1791,7 +1791,7 @@ p.kg-collection-card-post-excerpt {
|
|
|
1791
1791
|
.kg-collection-card-grid.columns-4 h2.kg-collection-card-post-title {
|
|
1792
1792
|
font-size: 1.7rem;
|
|
1793
1793
|
}
|
|
1794
|
-
}`,
|
|
1794
|
+
}`,Me=t({default:()=>Ne}),Ne=`.kg-cta-card,
|
|
1795
1795
|
.kg-cta-card * {
|
|
1796
1796
|
box-sizing: border-box;
|
|
1797
1797
|
}
|
|
@@ -2043,7 +2043,7 @@ a.kg-cta-button {
|
|
|
2043
2043
|
width: 100%;
|
|
2044
2044
|
}
|
|
2045
2045
|
|
|
2046
|
-
`,
|
|
2046
|
+
`,Pe=t({default:()=>Fe}),Fe=`.kg-file-card,
|
|
2047
2047
|
.kg-file-card * {
|
|
2048
2048
|
box-sizing: border-box;
|
|
2049
2049
|
}
|
|
@@ -2186,7 +2186,7 @@ a.kg-cta-button {
|
|
|
2186
2186
|
.kg-file-card + .kg-file-card {
|
|
2187
2187
|
margin-top: 1em;
|
|
2188
2188
|
}
|
|
2189
|
-
`,
|
|
2189
|
+
`,Ie=t({default:()=>Le}),Le=`.kg-gallery-card,
|
|
2190
2190
|
.kg-gallery-card * {
|
|
2191
2191
|
box-sizing: border-box;
|
|
2192
2192
|
}
|
|
@@ -2234,7 +2234,7 @@ a.kg-cta-button {
|
|
|
2234
2234
|
--gap: 0.6rem;
|
|
2235
2235
|
}
|
|
2236
2236
|
}
|
|
2237
|
-
`,
|
|
2237
|
+
`,Re=t({default:()=>ze}),ze=`.kg-header-card,
|
|
2238
2238
|
.kg-header-card * {
|
|
2239
2239
|
box-sizing: border-box;
|
|
2240
2240
|
}
|
|
@@ -2467,7 +2467,7 @@ a.kg-cta-button {
|
|
|
2467
2467
|
font-size: 1em;
|
|
2468
2468
|
}
|
|
2469
2469
|
}
|
|
2470
|
-
`,
|
|
2470
|
+
`,Be=t({default:()=>Ve}),Ve=`.kg-header-card.kg-v2 {
|
|
2471
2471
|
position: relative;
|
|
2472
2472
|
padding: 0;
|
|
2473
2473
|
min-height: initial;
|
|
@@ -2729,7 +2729,7 @@ a.kg-cta-button {
|
|
|
2729
2729
|
font-size: 1em;
|
|
2730
2730
|
}
|
|
2731
2731
|
}
|
|
2732
|
-
`,
|
|
2732
|
+
`,He=t({default:()=>Ue}),Ue=`.kg-nft-card,
|
|
2733
2733
|
.kg-nft-card * {
|
|
2734
2734
|
box-sizing: border-box;
|
|
2735
2735
|
}
|
|
@@ -2823,7 +2823,7 @@ a.kg-cta-button {
|
|
|
2823
2823
|
line-height: 1.4em;
|
|
2824
2824
|
margin: 20px 0 0;
|
|
2825
2825
|
color: #222;
|
|
2826
|
-
}`,
|
|
2826
|
+
}`,We=t({default:()=>Ge}),Ge=`.kg-product-card,
|
|
2827
2827
|
.kg-product-card * {
|
|
2828
2828
|
box-sizing: border-box;
|
|
2829
2829
|
}
|
|
@@ -2956,7 +2956,7 @@ a.kg-cta-button {
|
|
|
2956
2956
|
background-color: var(--ghost-accent-color);
|
|
2957
2957
|
color: #fff;
|
|
2958
2958
|
}
|
|
2959
|
-
`,
|
|
2959
|
+
`,Ke=t({default:()=>qe}),qe=`.kg-signup-card {
|
|
2960
2960
|
position: relative;
|
|
2961
2961
|
}
|
|
2962
2962
|
|
|
@@ -3338,7 +3338,7 @@ a.kg-cta-button {
|
|
|
3338
3338
|
font-size: 1em;
|
|
3339
3339
|
}
|
|
3340
3340
|
}
|
|
3341
|
-
`,
|
|
3341
|
+
`,Je=t({default:()=>Ye}),Ye=`.kg-toggle-card,
|
|
3342
3342
|
.kg-toggle-card * {
|
|
3343
3343
|
box-sizing: border-box;
|
|
3344
3344
|
}
|
|
@@ -3435,7 +3435,7 @@ a.kg-cta-button {
|
|
|
3435
3435
|
.kg-toggle-card + .kg-toggle-card {
|
|
3436
3436
|
margin-top: 1em;
|
|
3437
3437
|
}
|
|
3438
|
-
`,
|
|
3438
|
+
`,Xe=t({default:()=>Ze}),Ze=`.kg-transistor-card {
|
|
3439
3439
|
display: flex;
|
|
3440
3440
|
justify-content: center;
|
|
3441
3441
|
}
|
|
@@ -3523,7 +3523,7 @@ a.kg-cta-button {
|
|
|
3523
3523
|
font-size: 1.45rem;
|
|
3524
3524
|
}
|
|
3525
3525
|
}
|
|
3526
|
-
`,
|
|
3526
|
+
`,Qe=t({default:()=>$e}),$e=`.kg-video-card,
|
|
3527
3527
|
.kg-video-card * {
|
|
3528
3528
|
box-sizing: border-box;
|
|
3529
3529
|
}
|
|
@@ -3879,11 +3879,11 @@ a.kg-cta-button {
|
|
|
3879
3879
|
transform: scale(1.2);
|
|
3880
3880
|
}
|
|
3881
3881
|
|
|
3882
|
-
|
|
3882
|
+
`,et=Object.assign({"../../ghost/core/core/frontend/src/cards/js/audio.js":ve,"../../ghost/core/core/frontend/src/cards/js/gallery.js":be,"../../ghost/core/core/frontend/src/cards/js/toggle.js":xe,"../../ghost/core/core/frontend/src/cards/js/video.js":J}),tt=Object.assign({"../../ghost/core/core/frontend/src/cards/css/audio.css":Y,"../../ghost/core/core/frontend/src/cards/css/blockquote.css":we,"../../ghost/core/core/frontend/src/cards/css/bookmark.css":Ee,"../../ghost/core/core/frontend/src/cards/css/button.css":De,"../../ghost/core/core/frontend/src/cards/css/callout.css":ke,"../../ghost/core/core/frontend/src/cards/css/collection.css":Ae,"../../ghost/core/core/frontend/src/cards/css/cta.css":Me,"../../ghost/core/core/frontend/src/cards/css/file.css":Pe,"../../ghost/core/core/frontend/src/cards/css/gallery.css":Ie,"../../ghost/core/core/frontend/src/cards/css/header.css":Re,"../../ghost/core/core/frontend/src/cards/css/header_v2.css":Be,"../../ghost/core/core/frontend/src/cards/css/nft.css":He,"../../ghost/core/core/frontend/src/cards/css/product.css":We,"../../ghost/core/core/frontend/src/cards/css/signup.css":Ke,"../../ghost/core/core/frontend/src/cards/css/toggle.css":Je,"../../ghost/core/core/frontend/src/cards/css/transistor.css":Xe,"../../ghost/core/core/frontend/src/cards/css/video.css":Qe}),nt=Object.values(et).map(e=>e.default).join(`
|
|
3883
3883
|
|
|
3884
|
-
`),
|
|
3884
|
+
`),rt=Object.values(tt).map(e=>e.default).join(`
|
|
3885
3885
|
|
|
3886
|
-
`),
|
|
3886
|
+
`),it=({postUrl:e,heading:t,image:n,excerpt:r,authors:i,html:a,backgroundColor:o,fontSize:s,fontStyle:c,onHeadingsExtracted:l,onIframeLoad:u,onLoadingChange:d,isPopoverOpen:f})=>{let p=(0,B.useRef)(null),[m,h]=(0,B.useState)(!0),[g,_]=(0,B.useState)(`0px`),v=document.documentElement.classList.contains(`dark`)&&o===`SYSTEM`||o===`DARK`,y=_e(),b=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(hover: none) and (pointer: coarse)`).matches,x=(0,B.useMemo)(()=>ae(D(b?M(a):a)),[a,b]),S=`
|
|
3887
3887
|
<html class="has-${v?`light`:`dark`}-text has-${c}-body ${o===`SEPIA`&&`has-sepia-bg`}">
|
|
3888
3888
|
<head>
|
|
3889
3889
|
${y}
|
|
@@ -3901,7 +3901,7 @@ a.kg-cta-button {
|
|
|
3901
3901
|
}
|
|
3902
3902
|
</style>
|
|
3903
3903
|
<style>
|
|
3904
|
-
${
|
|
3904
|
+
${rt}
|
|
3905
3905
|
</style>
|
|
3906
3906
|
|
|
3907
3907
|
<script>
|
|
@@ -3977,14 +3977,14 @@ a.kg-cta-button {
|
|
|
3977
3977
|
</head>
|
|
3978
3978
|
<body>
|
|
3979
3979
|
<header class='gh-article-header gh-canvas'>
|
|
3980
|
-
<h1 class='gh-article-title is-title' data-test-article-heading>${
|
|
3981
|
-
${r?`<p class='gh-article-excerpt'>${
|
|
3982
|
-
<a href="${e&&
|
|
3980
|
+
<h1 class='gh-article-title is-title' data-test-article-heading>${N(t)}</h1>
|
|
3981
|
+
${r?`<p class='gh-article-excerpt'>${N(r)}</p>`:``}
|
|
3982
|
+
<a href="${e&&A(e)?N(e):`#`}" target="_blank" rel="noopener noreferrer" class="gh-article-meta">
|
|
3983
3983
|
${i&&i.length>0?`
|
|
3984
3984
|
<div class="gh-article-author-image">
|
|
3985
3985
|
${i.map(e=>`
|
|
3986
3986
|
<span>
|
|
3987
|
-
${e.profile_image?`<img src="${
|
|
3987
|
+
${e.profile_image?`<img src="${N(e.profile_image)}" alt="${N(e.name)}">`:`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" height="24" width="24"><path d="M6.75 6a5.25 5.25 0 1 0 10.5 0 5.25 5.25 0 1 0 -10.5 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.25 23.25a9.75 9.75 0 0 1 19.5 0" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg>`}
|
|
3988
3988
|
</span>
|
|
3989
3989
|
`).join(``)}
|
|
3990
3990
|
</div>
|
|
@@ -3992,15 +3992,15 @@ a.kg-cta-button {
|
|
|
3992
3992
|
<div class="gh-article-meta-wrapper">
|
|
3993
3993
|
${i&&i.length>0?`
|
|
3994
3994
|
<span class="gh-article-author-name">
|
|
3995
|
-
${i.length>1?`${
|
|
3995
|
+
${i.length>1?`${N(i[0].name)} and ${i.length-1} ${i.length-1==1?`other`:`others`}`:N(i[0].name)}
|
|
3996
3996
|
</span>
|
|
3997
3997
|
`:``}
|
|
3998
|
-
<span class="gh-article-source">${e&&
|
|
3998
|
+
<span class="gh-article-source">${e&&A(e)?N(new URL(e).hostname):``} <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-external-link-icon lucide-external-link"><path d="M15 3h6v6"/><path d="M10 14 21 3"/><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/></svg></span>
|
|
3999
3999
|
</div>
|
|
4000
4000
|
</a>
|
|
4001
4001
|
${n?`
|
|
4002
4002
|
<figure class='gh-article-image'>
|
|
4003
|
-
<img src='${
|
|
4003
|
+
<img src='${N(n)}' alt='${N(t)}' />
|
|
4004
4004
|
</figure>
|
|
4005
4005
|
`:``}
|
|
4006
4006
|
</header>
|
|
@@ -4021,8 +4021,8 @@ a.kg-cta-button {
|
|
|
4021
4021
|
})();
|
|
4022
4022
|
<\/script>
|
|
4023
4023
|
<script>
|
|
4024
|
-
${
|
|
4024
|
+
${nt}
|
|
4025
4025
|
<\/script>
|
|
4026
4026
|
</body>
|
|
4027
4027
|
</html>
|
|
4028
|
-
`;return(0,z.useEffect)(()=>{let e=p.current;if(!e)return;e.srcdoc||=S;let t=t=>{if(t.data.type===`resize`){let n=`${t.data.bodyHeight+24}px`;_(n),e.style.height=n,t.data.isLoaded&&h(!1)}},n=e=>{if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=new KeyboardEvent(`keydown`,{key:`Escape`,code:`Escape`,keyCode:27,which:27,bubbles:!0,cancelable:!0});document.dispatchEvent(t)}},r=()=>{let t=e.contentWindow;t&&t.addEventListener(`keydown`,n)};return e.addEventListener(`load`,r),window.addEventListener(`message`,t),()=>{window.removeEventListener(`message`,t),e.removeEventListener(`load`,r);let i=e.contentWindow;i&&i.removeEventListener(`keydown`,n)}},[S]),(0,z.useEffect)(()=>{let e=p.current;if(!e)return;let t=e.contentDocument||e.contentWindow?.document;if(!t)return;let n=t.documentElement;n.style.setProperty(`--font-size`,s),n.classList.remove(`has-sans-body`,`has-serif-body`),n.classList.add(`has-${c}-body`),n.classList.remove(`has-dark-text`,`has-light-text`),n.classList.add(`has-${v?`light`:`dark`}-text`),o===`SEPIA`?n.classList.add(`has-sepia-bg`):n.classList.remove(`has-sepia-bg`);let r=e.contentWindow;if(r&&typeof r.resizeIframe==`function`)r.resizeIframe();else{let e=new Event(`resize`);t.dispatchEvent(e)}},[s,c,o,v]),(0,z.useEffect)(()=>{let e=p.current;if(!e)return;let t=()=>{if(!e.contentDocument)return;let t=Array.from(e.contentDocument.querySelectorAll(`.gh-content > :is(h2, h3, h4, h5, h6)[id]`));if(t.length===0)return;let n=Math.min(...t.map(e=>parseInt(e.tagName[1]))),r=t.map((e,t)=>{let r=`heading-${t}`;e.id=r;let i=parseInt(e.tagName[1])-n+1;return{id:r,text:e.textContent||``,level:i,element:e}});l?.(r),u?.(e)};return e.addEventListener(`load`,t),()=>e.removeEventListener(`load`,t)},[l,u]),(0,z.useEffect)(()=>{d?.(m)},[m,d]),(0,B.jsx)(`div`,{className:`w-full pb-6`,children:(0,B.jsxs)(`div`,{className:`relative -mx-6`,children:[m&&(0,B.jsxs)(`div`,{className:`mx-auto mt-6 w-full max-w-[640px] max-lg:px-4`,children:[(0,B.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,B.jsx)(E,{className:`h-8`}),(0,B.jsx)(E,{className:`h-8 w-full max-w-md`})]}),(0,B.jsx)(E,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,B.jsx)(E,{className:`mt-8 h-[400px]`}),(0,B.jsx)(E,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]}),(0,B.jsx)(`iframe`,{ref:p,id:`gh-ap-article-iframe`,style:{width:`100%`,border:`none`,height:g,overflow:`hidden`,opacity:+!m,transition:`opacity 0.2s ease-in-out`,pointerEvents:f?`none`:`auto`},title:`Embedded Content`})]})})},it=()=>(0,B.jsx)(`div`,{className:`h-px bg-black/[8%] dark:bg-gray-950`}),$=new Map,at=({postId:e=null,onClose:t})=>{let{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,fontSize:a,handleColorChange:o,setFontStyle:s,increaseFontSize:c,decreaseFontSize:l,resetFontSize:u}=fe(),d=(0,z.useRef)(null),[p,h]=(0,z.useState)(!1),[g,_]=(0,z.useState)(!1),[y,x]=(0,z.useState)(new Set),[S,ee]=(0,z.useState)(new Set),[te,w]=(0,z.useState)(new Set),[T,j]=(0,z.useState)(!1),N=(0,z.useRef)(null),P=(0,z.useRef)(null),{post:F,processedReplies:re,isLoading:I,loadMoreChildren:ae,loadMoreChildReplies:L,hasMoreChildren:R,hasMoreChildReplies:V}=de(e??``,{includeAncestors:!1}),H=F,W=H?.object,G=H?.actor,he=H?.object?.metadata?.ghostAuthors,ge=W?.replyCount??0;(0,z.useEffect)(()=>{if(!R)return;N.current&&N.current.disconnect();let e=d.current;if(e)return N.current=new IntersectionObserver(async e=>{if(e[0].isIntersecting&&R&&!T){j(!0);try{await ae()}catch(e){console.error(`Failed to load more top-level replies:`,e)}finally{j(!1)}}},{root:e,rootMargin:`200px`}),P.current&&N.current.observe(P.current),()=>{N.current&&N.current.disconnect()}},[R,T,ae]);function K(){}function _e(e){x(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(n.add(e),ee(t=>{let n=new Set(t);return n.add(e),n})),n})}async function ve(e,t){if(!te.has(e)){w(t=>new Set(t).add(e));try{L&&await L(t)}catch(e){console.error(`Failed to load more replies for chain:`,e)}finally{w(t=>{let n=new Set(t);return n.delete(e),n})}}}let ye=()=>{},be=(0,z.useRef)(null),q=`640px`,[xe,Se]=(0,z.useState)(0),[J,Ce]=(0,z.useState)(!0),[Y]=m(Se,100);(0,z.useEffect)(()=>{let e=d.current,t=document.getElementById(`object-content`),n=()=>{if(J||!e||!t)return;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();if(n.height<=r.height){Y(100);return}let i=Math.max(0,r.top-n.top),a=t.offsetHeight-e.offsetHeight,o=Math.min(Math.max(i/a*100,0),100),s=Math.round(o/1)*1;Y(s)};if(J)return;let r=new MutationObserver(n);return t&&r.observe(t,{childList:!0,subtree:!0,characterData:!0}),e?.addEventListener(`scroll`,n),n(),()=>{e?.removeEventListener(`scroll`,n),r.disconnect()}},[J,Y]);let[X,we]=(0,z.useState)([]),[Te,Ee]=(0,z.useState)(null),[Z,De]=(0,z.useState)(null),Oe=(0,z.useCallback)(e=>{we(e)},[]),ke=(0,z.useCallback)(e=>{De(e)},[]);(0,z.useEffect)(()=>{if(!Z?.contentDocument||!X.length)return;let e=setTimeout(()=>{let e=d.current;if(!e)return;let t=()=>{let t=Z.contentDocument;if(!t||!t.documentElement)return;let n=e.scrollTop,r=X.map(e=>t.getElementById(e.id)).filter(e=>e!==null).map(e=>({element:e,id:e.id,top:e.offsetTop}));if(!r.length)return;let i=null;for(let e of r)if(e.top-100<=n)i=e;else break;Ee(i?.id||null)};return e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`scroll`,t)}},100);return()=>clearTimeout(e)},[Z,X,Te]);let Q=b();return(0,z.useEffect)(()=>{let t=d.current;return()=>{t&&e&&$.set(e,t.scrollTop)}},[e]),(0,z.useEffect)(()=>{if(!J&&!I&&e&&d.current){let t=$.get(e);t!==void 0&&t>0&&setTimeout(()=>{d.current&&(d.current.scrollTop=t)},100)}},[J,I,e]),I?(0,B.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${U[n].background}`,children:(0,B.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,B.jsxs)(`div`,{className:`relative flex-1`,children:[(0,B.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${U[n].background} ${U[n].border}`,children:(0,B.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${q}) 1fr`},children:[(0,B.jsx)(`div`,{className:`flex items-center`,children:(0,B.jsx)(oe,{className:U[n].button,onClick:t})}),(0,B.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:[(0,B.jsx)(E,{className:`size-10 rounded-full`}),(0,B.jsxs)(`div`,{className:`grow pt-1`,children:[(0,B.jsx)(E,{className:`w-full`}),(0,B.jsx)(E,{className:`w-2/3`})]})]}),(0,B.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,B.jsx)(pe,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:h,onResetFontSize:u})})]})}),(0,B.jsx)(`div`,{className:`relative flex-1 max-lg:px-4`,children:(0,B.jsxs)(`div`,{className:`mx-auto mt-11 w-full max-w-[640px]`,children:[(0,B.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,B.jsx)(E,{className:`h-8`}),(0,B.jsx)(E,{className:`h-8 w-full max-w-md`})]}),(0,B.jsx)(E,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,B.jsx)(E,{className:`mt-8 h-[400px]`}),(0,B.jsx)(E,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]})})]})})}):F?(0,B.jsx)(`div`,{ref:d,className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${U[n].background}`,"data-scrollable-container":!0,children:(0,B.jsx)(B.Fragment,{children:(0,B.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,B.jsxs)(`div`,{className:`relative flex-1`,children:[(0,B.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${U[n].background} ${U[n].border}`,children:(0,B.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${q}) 1fr`},children:[(0,B.jsx)(`div`,{className:`flex items-center`,children:(0,B.jsx)(oe,{className:U[n].button,onClick:t})}),(0,B.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center justify-between gap-3 max-md:hidden`,children:[(0,B.jsx)(se,{actor:G,isCurrentUser:W.authored,children:(0,B.jsxs)(`div`,{className:`flex cursor-pointer items-center gap-3`,children:[(0,B.jsx)(`div`,{className:`relative z-10 pt-0.5`,children:(0,B.jsx)(ie,{author:G})}),(0,B.jsxs)(`div`,{className:`relative z-10 mt-0.5 flex min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]`,onClick:e=>C(G,Q,e),children:[(0,B.jsx)(`div`,{className:`flex w-full`,children:(0,B.jsx)(`span`,{className:`min-w-0 truncate font-semibold whitespace-nowrap text-black hover:underline dark:text-white`,children:I?(0,B.jsx)(E,{className:`w-20`}):G.name})}),(0,B.jsxs)(`div`,{className:`flex w-full`,children:[!I&&(0,B.jsx)(`span`,{className:`truncate text-gray-700 after:mx-1 after:font-normal after:text-gray-700 after:content-["·"]`,children:D(G)}),(0,B.jsx)(`span`,{className:`text-gray-700`,children:I?(0,B.jsx)(E,{className:`w-[120px]`}):A(W,!W.authored)})]})]})]})}),!W.authored&&!I&&(0,B.jsx)(M,{following:G.followedByMe??!1,handle:D(G)})]}),(0,B.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,B.jsx)(pe,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:l,onFontStyleChange:s,onIncreaseFontSize:c,onOpenChange:h,onResetFontSize:u})})]})}),(0,B.jsxs)(`div`,{className:`relative flex-1`,children:[(0,B.jsx)(me,{iframeElement:Z,modalRef:d,tocItems:X,onOpenChange:_}),!I&&(0,B.jsx)(`div`,{className:`grow overflow-y-auto`,children:(0,B.jsxs)(`div`,{className:`mx-auto px-6 pt-5 pb-10`,style:{maxWidth:`904px`},children:[(0,B.jsxs)(`div`,{className:`flex flex-col items-center pb-8`,id:`object-content`,children:[(0,B.jsx)(rt,{authors:he,backgroundColor:n,excerpt:W.summary??``,fontSize:a,fontStyle:i,heading:W.name,html:W.content??``,image:typeof W.image==`string`?W.image:W.image?.url,isPopoverOpen:p||g,postUrl:W?.url||``,onHeadingsExtracted:Oe,onIframeLoad:ke,onLoadingChange:Ce}),(0,B.jsx)(`div`,{className:`-ml-3 w-full`,style:{maxWidth:q},children:(0,B.jsx)(ne,{actor:G,commentCount:ge,layout:`modal`,likeCount:W.likeCount??0,object:W,repostCount:W.repostCount??0,onLikeClick:ye})})]}),W.type===`Tombstone`&&(0,B.jsx)(ue,{last:!0}),(0,B.jsxs)(`div`,{className:`mx-auto w-full border-t border-black/[8%] dark:border-gray-950`,style:{maxWidth:q},children:[(0,B.jsx)(ce,{object:W}),(0,B.jsx)(it,{})]}),I&&(0,B.jsx)(v,{size:`lg`}),(0,B.jsxs)(`div`,{ref:be,className:`mx-auto w-full`,style:{maxWidth:q},children:[re.map((t,n)=>{let r=n===re.length-1,i=t.mainReply.id,a=y.has(i),o=S.has(i),s=te.has(i),c=t.chain.length>0;return(0,B.jsxs)(z.Fragment,{children:[(0,B.jsx)(k,{actor:t.mainReply.actor,allowDelete:t.mainReply.object.authored,commentCount:t.mainReply.object.replyCount??0,isChainParent:c,isPending:O(t.mainReply.id),last:!c,layout:`reply`,likeCount:t.mainReply.object.likeCount??0,object:t.mainReply.object,parentId:W.id,repostCount:t.mainReply.object.repostCount??0,type:`Note`,onClick:()=>{let n=d.current;n&&e&&$.set(e,n.scrollTop),Q(`/notes/${encodeURIComponent(t.mainReply.id)}`)},onDelete:K}),c&&t.chain[0]&&(0,B.jsx)(k,{actor:t.chain[0].actor,allowDelete:t.chain[0].object.authored,commentCount:t.chain[0].object.replyCount??0,isChainContinuation:!0,isPending:O(t.chain[0].id),last:t.chain.length===1,layout:`reply`,likeCount:t.chain[0].object.likeCount??0,object:t.chain[0].object,parentId:W.id,repostCount:t.chain[0].object.repostCount??0,type:`Note`,onClick:()=>{let n=d.current;n&&e&&$.set(e,n.scrollTop),Q(`/notes/${encodeURIComponent(t.chain[0].id)}`)},onDelete:K},t.chain[0].id),c&&a&&t.chain.slice(1).map((r,i)=>{let a=i===t.chain.slice(1).length-1,o=V&&V(n),s=a&&o;return(0,B.jsx)(k,{actor:r.actor,allowDelete:r.object.authored,commentCount:r.object.replyCount??0,isChainContinuation:!0,isPending:O(r.id),last:a&&!s,layout:`reply`,likeCount:r.object.likeCount??0,object:r.object,parentId:W.id,repostCount:r.object.repostCount??0,type:`Note`,onClick:()=>{let t=d.current;t&&e&&$.set(e,t.scrollTop),Q(`/notes/${encodeURIComponent(r.id)}`)},onDelete:K},r.id)}),c&&t.chain.length>1&&!a&&(0,B.jsx)(le,{variant:`expand`,onClick:()=>_e(i)}),c&&a&&o&&V&&V(n)&&(0,B.jsx)(le,{loading:s,variant:`loadMore`,onClick:()=>ve(i,n)}),!r&&(0,B.jsx)(it,{})]},t.mainReply.id)}),T&&(0,B.jsx)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:(0,B.jsx)(v,{size:`md`})})]}),R&&(0,B.jsx)(`div`,{ref:P,className:`h-1`})]})})]})]}),!I&&(0,B.jsxs)(`div`,{className:`pointer-events-none visible! sticky bottom-0 hidden items-end justify-between px-10 pb-[42px] lg:flex!`,children:[(0,B.jsx)(`div`,{className:`pointer-events-auto text-gray-600`,children:f(W.content??``)}),(0,B.jsxs)(`div`,{className:`pointer-events-auto min-w-10 text-right text-gray-600 transition-all duration-200 ease-out`,children:[xe,`%`]},xe)]})]})})}):(0,B.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${U[n].background}`,children:(0,B.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,B.jsx)(`div`,{className:`relative flex-1`,children:(0,B.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${U[n].background} ${U[n].border}`,children:(0,B.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${q}) 1fr`},children:[(0,B.jsx)(`div`,{className:`flex items-center`,children:(0,B.jsx)(oe,{className:U[n].button,onClick:t})}),(0,B.jsx)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:(0,B.jsx)(`div`,{className:`grow text-center`,children:(0,B.jsx)(`span`,{children:`Error loading article.`})})})]})})})})})},ot=({isLoading:e,activities:t,currentTopic:n,fetchNextPage:r,hasNextPage:i,isFetchingNextPage:s,onTopicChange:c})=>{let f=b(),{canGoBack:m,goBack:h}=o(),[g,y]=(0,z.useState)(!1),C=a(),{topicsQuery:T}=S(),{data:E}=T,D=E&&E.topics.length>0;(0,z.useEffect)(()=>{y(!!C.postId)},[C.postId]);let A=(0,z.useRef)(null),j=(0,z.useRef)(null),M=(0,z.useRef)(null);(0,z.useEffect)(()=>(A.current&&A.current.disconnect(),A.current=new IntersectionObserver(e=>{e[0].isIntersecting&&i&&!s&&r()}),j.current&&A.current.observe(j.current),M.current&&A.current.observe(M.current),()=>{A.current&&A.current.disconnect()}),[i,s,r]);let ne=Math.max(0,Math.floor(t.length*.75)-1);return(0,B.jsxs)(w,{children:[D&&(0,B.jsx)(R,{currentTopic:n,excludeTopics:[`top`],onTopicChange:c}),(0,B.jsx)(`div`,{className:`flex w-full flex-col`,children:(0,B.jsx)(`div`,{className:`w-full`,children:t.length>0?(0,B.jsx)(`div`,{className:`my-4`,children:(0,B.jsx)(`div`,{className:`mx-auto flex min-h-[calc(100dvh_-_117px)] items-start gap-11`,children:(0,B.jsx)(`div`,{className:`flex w-full min-w-0 flex-col items-center`,children:(0,B.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col items-start`,children:[(0,B.jsxs)(`ul`,{className:`mx-auto flex w-full flex-col`,"data-testid":`inbox-list`,children:[t.map((n,r)=>(0,B.jsxs)(`li`,{"data-testid":`inbox-item`,"data-test-view-article":!0,children:[(0,B.jsx)(k,{actor:n.actor,allowDelete:n.object.authored,commentCount:n.object.replyCount??0,isLoading:e,isPending:O(n.id),layout:`inbox`,likeCount:n.object.likeCount??0,object:n.object,repostCount:n.object.repostCount??0,type:n.type,onClick:()=>{f(`/reader/${encodeURIComponent(n.id)}`)}}),r<t.length-1&&(0,B.jsx)(_,{}),r===ne&&(0,B.jsx)(`div`,{ref:j,className:`h-1`})]},`${n.id}-${n.type}-${r}`)),s&&(0,B.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,B.jsx)(v,{size:`md`})})]}),(0,B.jsx)(`div`,{ref:M,className:`h-1`})]})})})}):n===`following`?(0,B.jsx)(`div`,{className:`mt-[24vh]`,children:(0,B.jsx)(d,{actions:D?(0,B.jsx)(l,{onClick:()=>f(`/explore`),children:`Find accounts to follow →`}):(0,B.jsx)(l,{asChild:!0,children:(0,B.jsx)(`a`,{href:`https://explore.ghost.org/social-web`,rel:`noopener noreferrer`,target:`_blank`,children:`Find accounts to follow →`})}),description:`Start following publishers to see their long-form posts here.`,title:`Your Reader is empty`,children:(0,B.jsx)(u,{})})}):(0,B.jsx)(`div`,{className:`mt-[24vh]`,children:(0,B.jsx)(d,{description:`Explore other topics for more content.`,title:`Nothing here yet`,children:(0,B.jsx)(u,{})})})})}),(0,B.jsx)(ee,{open:g,onOpenChange:e=>{e||(m?h():f(`/reader`)),y(e)},children:(0,B.jsxs)(p,{className:`inset-y-3 h-[calc(100vh-24px)] w-screen max-w-[calc(100vw-24px)] animate-none! p-0 focus:outline-hidden dark:bg-gray-950`,children:[(0,B.jsxs)(x,{className:`hidden`,children:[(0,B.jsx)(te,{children:`Reader`}),(0,B.jsx)(re,{children:`Ghost reader for long form articles`})]}),C.postId&&(0,B.jsx)(at,{postId:C.postId,onClose:()=>{m?h():f(`/reader`)}})]})})]})},st=()=>{let[e,t]=(0,z.useState)(`following`),{inboxQuery:n}=h({enabled:e===`following`}),{discoveryFeedQuery:r}=T({enabled:e!==`following`,topic:e}),{data:i,error:a,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l}=e===`following`?n:r,u=a&&y(a)&&a.statusCode===404&&e!==`following`;return a&&y(a)&&!u?(0,B.jsx)(g,{errorCode:a.code,statusCode:a.statusCode}):(0,B.jsx)(ot,{activities:u?[]:i?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}})),currentTopic:e,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l,onTopicChange:t})};export{st as default};
|
|
4028
|
+
`;return(0,B.useEffect)(()=>{let e=p.current;if(!e)return;e.srcdoc||=S;let t=t=>{if(t.data.type===`resize`){let n=`${t.data.bodyHeight+24}px`;_(n),e.style.height=n,t.data.isLoaded&&h(!1)}},n=e=>{if(e.key===`Escape`){e.preventDefault(),e.stopPropagation();let t=new KeyboardEvent(`keydown`,{key:`Escape`,code:`Escape`,keyCode:27,which:27,bubbles:!0,cancelable:!0});document.dispatchEvent(t)}},r=()=>{let t=e.contentWindow;t&&t.addEventListener(`keydown`,n)};return e.addEventListener(`load`,r),window.addEventListener(`message`,t),()=>{window.removeEventListener(`message`,t),e.removeEventListener(`load`,r);let i=e.contentWindow;i&&i.removeEventListener(`keydown`,n)}},[S]),(0,B.useEffect)(()=>{let e=p.current;if(!e)return;let t=e.contentDocument||e.contentWindow?.document;if(!t)return;let n=t.documentElement;n.style.setProperty(`--font-size`,s),n.classList.remove(`has-sans-body`,`has-serif-body`),n.classList.add(`has-${c}-body`),n.classList.remove(`has-dark-text`,`has-light-text`),n.classList.add(`has-${v?`light`:`dark`}-text`),o===`SEPIA`?n.classList.add(`has-sepia-bg`):n.classList.remove(`has-sepia-bg`);let r=e.contentWindow;if(r&&typeof r.resizeIframe==`function`)r.resizeIframe();else{let e=new Event(`resize`);t.dispatchEvent(e)}},[s,c,o,v]),(0,B.useEffect)(()=>{let e=p.current;if(!e)return;let t=()=>{if(!e.contentDocument)return;let t=Array.from(e.contentDocument.querySelectorAll(`.gh-content > :is(h2, h3, h4, h5, h6)[id]`));if(t.length===0)return;let n=Math.min(...t.map(e=>parseInt(e.tagName[1]))),r=t.map((e,t)=>{let r=`heading-${t}`;e.id=r;let i=parseInt(e.tagName[1])-n+1;return{id:r,text:e.textContent||``,level:i,element:e}});l?.(r),u?.(e)};return e.addEventListener(`load`,t),()=>e.removeEventListener(`load`,t)},[l,u]),(0,B.useEffect)(()=>{d?.(m)},[m,d]),(0,V.jsx)(`div`,{className:`w-full pb-6`,children:(0,V.jsxs)(`div`,{className:`relative -mx-6`,children:[m&&(0,V.jsxs)(`div`,{className:`mx-auto mt-6 w-full max-w-[640px] max-lg:px-4`,children:[(0,V.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,V.jsx)(P,{className:`h-8`}),(0,V.jsx)(P,{className:`h-8 w-full max-w-md`})]}),(0,V.jsx)(P,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,V.jsx)(P,{className:`mt-8 h-[400px]`}),(0,V.jsx)(P,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]}),(0,V.jsx)(`iframe`,{ref:p,id:`gh-ap-article-iframe`,style:{width:`100%`,border:`none`,height:g,overflow:`hidden`,opacity:+!m,transition:`opacity 0.2s ease-in-out`,pointerEvents:f?`none`:`auto`},title:`Embedded Content`})]})})},at=()=>(0,V.jsx)(`div`,{className:`h-px bg-black/[8%] dark:bg-gray-950`}),$=new Map,ot=({postId:e=null,onClose:t})=>{let{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,fontSize:a,handleColorChange:o,setFontStyle:c,increaseFontSize:u,decreaseFontSize:d,resetFontSize:f}=fe(),p=(0,B.useRef)(null),[m,_]=(0,B.useState)(!1),[v,b]=(0,B.useState)(!1),[x,ee]=(0,B.useState)(new Set),[C,te]=(0,B.useState)(new Set),[E,D]=(0,B.useState)(new Set),[k,A]=(0,B.useState)(!1),j=(0,B.useRef)(null),M=(0,B.useRef)(null),{post:ae,processedReplies:N,isLoading:F,loadMoreChildren:I,loadMoreChildReplies:L,hasMoreChildren:R,hasMoreChildReplies:z}=de(e??``,{includeAncestors:!1}),H=ae,U=H?.object,G=H?.actor,he=H?.object?.metadata?.ghostAuthors,ge=U?.replyCount??0;(0,B.useEffect)(()=>{if(!R)return;j.current&&j.current.disconnect();let e=p.current;if(e)return j.current=new IntersectionObserver(async e=>{if(e[0].isIntersecting&&R&&!k){A(!0);try{await I()}catch(e){console.error(`Failed to load more top-level replies:`,e)}finally{A(!1)}}},{root:e,rootMargin:`200px`}),M.current&&j.current.observe(M.current),()=>{j.current&&j.current.disconnect()}},[R,k,I]);function K(){}function _e(e){ee(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(n.add(e),te(t=>{let n=new Set(t);return n.add(e),n})),n})}async function ve(e,t){if(!E.has(e)){D(t=>new Set(t).add(e));try{L&&await L(t)}catch(e){console.error(`Failed to load more replies for chain:`,e)}finally{D(t=>{let n=new Set(t);return n.delete(e),n})}}}let ye=()=>{},be=(0,B.useRef)(null),q=`640px`,[xe,Se]=(0,B.useState)(0),[J,Ce]=(0,B.useState)(!0),[Y]=l(Se,100);(0,B.useEffect)(()=>{let e=p.current,t=document.getElementById(`object-content`),n=()=>{if(J||!e||!t)return;let n=t.getBoundingClientRect(),r=e.getBoundingClientRect();if(n.height<=r.height){Y(100);return}let i=Math.max(0,r.top-n.top),a=t.offsetHeight-e.offsetHeight,o=Math.min(Math.max(i/a*100,0),100),s=Math.round(o/1)*1;Y(s)};if(J)return;let r=new MutationObserver(n);return t&&r.observe(t,{childList:!0,subtree:!0,characterData:!0}),e?.addEventListener(`scroll`,n),n(),()=>{e?.removeEventListener(`scroll`,n),r.disconnect()}},[J,Y]);let[X,we]=(0,B.useState)([]),[Te,Ee]=(0,B.useState)(null),[Z,De]=(0,B.useState)(null),Oe=(0,B.useCallback)(e=>{we(e)},[]),ke=(0,B.useCallback)(e=>{De(e)},[]);(0,B.useEffect)(()=>{if(!Z?.contentDocument||!X.length)return;let e=setTimeout(()=>{let e=p.current;if(!e)return;let t=()=>{let t=Z.contentDocument;if(!t||!t.documentElement)return;let n=e.scrollTop,r=X.map(e=>t.getElementById(e.id)).filter(e=>e!==null).map(e=>({element:e,id:e.id,top:e.offsetTop}));if(!r.length)return;let i=null;for(let e of r)if(e.top-100<=n)i=e;else break;Ee(i?.id||null)};return e.addEventListener(`scroll`,t),t(),()=>{e.removeEventListener(`scroll`,t)}},100);return()=>clearTimeout(e)},[Z,X,Te]);let Q=y();return(0,B.useEffect)(()=>{let t=p.current;return()=>{t&&e&&$.set(e,t.scrollTop)}},[e]),(0,B.useEffect)(()=>{if(!J&&!F&&e&&p.current){let t=$.get(e);t!==void 0&&t>0&&setTimeout(()=>{p.current&&(p.current.scrollTop=t)},100)}},[J,F,e]),F?(0,V.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${W[n].background}`,children:(0,V.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,V.jsxs)(`div`,{className:`relative flex-1`,children:[(0,V.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${W[n].background} ${W[n].border}`,children:(0,V.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${q}) 1fr`},children:[(0,V.jsx)(`div`,{className:`flex items-center`,children:(0,V.jsx)(h,{className:W[n].button,onClick:t})}),(0,V.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:[(0,V.jsx)(P,{className:`size-10 rounded-full`}),(0,V.jsxs)(`div`,{className:`grow pt-1`,children:[(0,V.jsx)(P,{className:`w-full`}),(0,V.jsx)(P,{className:`w-2/3`})]})]}),(0,V.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,V.jsx)(pe,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:d,onFontStyleChange:c,onIncreaseFontSize:u,onOpenChange:_,onResetFontSize:f})})]})}),(0,V.jsx)(`div`,{className:`relative flex-1 max-lg:px-4`,children:(0,V.jsxs)(`div`,{className:`mx-auto mt-11 w-full max-w-[640px]`,children:[(0,V.jsxs)(`div`,{className:`mb-6 flex flex-col gap-2`,children:[(0,V.jsx)(P,{className:`h-8`}),(0,V.jsx)(P,{className:`h-8 w-full max-w-md`})]}),(0,V.jsx)(P,{className:`mt-2 h-4`,count:4,randomize:!0}),(0,V.jsx)(P,{className:`mt-8 h-[400px]`}),(0,V.jsx)(P,{className:`mt-2 h-4`,containerClassName:`block mt-7 mb-4`,count:8,randomize:!0})]})})]})})}):ae?(0,V.jsx)(`div`,{ref:p,className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${W[n].background}`,"data-scrollable-container":!0,children:(0,V.jsx)(V.Fragment,{children:(0,V.jsxs)(`div`,{className:`flex h-full flex-col`,children:[(0,V.jsxs)(`div`,{className:`relative flex-1`,children:[(0,V.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${W[n].background} ${W[n].border}`,children:(0,V.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${q}) 1fr`},children:[(0,V.jsx)(`div`,{className:`flex items-center`,children:(0,V.jsx)(h,{className:W[n].button,onClick:t})}),(0,V.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center justify-between gap-3 max-md:hidden`,children:[(0,V.jsx)(oe,{actor:G,isCurrentUser:U.authored,children:(0,V.jsxs)(`div`,{className:`flex cursor-pointer items-center gap-3`,children:[(0,V.jsx)(`div`,{className:`relative z-10 pt-0.5`,children:(0,V.jsx)(se,{author:G})}),(0,V.jsxs)(`div`,{className:`relative z-10 mt-0.5 flex min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]`,onClick:e=>S(G,Q,e),children:[(0,V.jsx)(`div`,{className:`flex w-full`,children:(0,V.jsx)(`span`,{className:`min-w-0 truncate font-semibold whitespace-nowrap text-black hover:underline dark:text-white`,children:F?(0,V.jsx)(P,{className:`w-20`}):G.name})}),(0,V.jsxs)(`div`,{className:`flex w-full`,children:[!F&&(0,V.jsx)(`span`,{className:`truncate text-gray-700 after:mx-1 after:font-normal after:text-gray-700 after:content-["·"]`,children:w(G)}),(0,V.jsx)(`span`,{className:`text-gray-700`,children:F?(0,V.jsx)(P,{className:`w-[120px]`}):ne(U,!U.authored)})]})]})]})}),!U.authored&&!F&&(0,V.jsx)(ie,{following:G.followedByMe??!1,handle:w(G)})]}),(0,V.jsx)(`div`,{className:`col-[3/4] flex items-center justify-end gap-2`,children:(0,V.jsx)(pe,{backgroundColor:n,currentFontSizeIndex:r,fontStyle:i,onColorChange:o,onDecreaseFontSize:d,onFontStyleChange:c,onIncreaseFontSize:u,onOpenChange:_,onResetFontSize:f})})]})}),(0,V.jsxs)(`div`,{className:`relative flex-1`,children:[(0,V.jsx)(me,{iframeElement:Z,modalRef:p,tocItems:X,onOpenChange:b}),!F&&(0,V.jsx)(`div`,{className:`grow overflow-y-auto`,children:(0,V.jsxs)(`div`,{className:`mx-auto px-6 pt-5 pb-10`,style:{maxWidth:`904px`},children:[(0,V.jsxs)(`div`,{className:`flex flex-col items-center pb-8`,id:`object-content`,children:[(0,V.jsx)(it,{authors:he,backgroundColor:n,excerpt:U.summary??``,fontSize:a,fontStyle:i,heading:U.name,html:U.content??``,image:typeof U.image==`string`?U.image:U.image?.url,isPopoverOpen:m||v,postUrl:U?.url||``,onHeadingsExtracted:Oe,onIframeLoad:ke,onLoadingChange:Ce}),(0,V.jsx)(`div`,{className:`-ml-3 w-full`,style:{maxWidth:q},children:(0,V.jsx)(O,{actor:G,commentCount:ge,layout:`modal`,likeCount:U.likeCount??0,object:U,repostCount:U.repostCount??0,onLikeClick:ye})})]}),U.type===`Tombstone`&&(0,V.jsx)(ue,{last:!0}),(0,V.jsxs)(`div`,{className:`mx-auto w-full border-t border-black/[8%] dark:border-gray-950`,style:{maxWidth:q},children:[(0,V.jsx)(ce,{object:U}),(0,V.jsx)(at,{})]}),F&&(0,V.jsx)(re,{size:`lg`}),(0,V.jsxs)(`div`,{ref:be,className:`mx-auto w-full`,style:{maxWidth:q},children:[N.map((t,n)=>{let r=n===N.length-1,i=t.mainReply.id,a=x.has(i),o=C.has(i),s=E.has(i),c=t.chain.length>0;return(0,V.jsxs)(B.Fragment,{children:[(0,V.jsx)(T,{actor:t.mainReply.actor,allowDelete:t.mainReply.object.authored,commentCount:t.mainReply.object.replyCount??0,isChainParent:c,isPending:g(t.mainReply.id),last:!c,layout:`reply`,likeCount:t.mainReply.object.likeCount??0,object:t.mainReply.object,parentId:U.id,repostCount:t.mainReply.object.repostCount??0,type:`Note`,onClick:()=>{let n=p.current;n&&e&&$.set(e,n.scrollTop),Q(`/notes/${encodeURIComponent(t.mainReply.id)}`)},onDelete:K}),c&&t.chain[0]&&(0,V.jsx)(T,{actor:t.chain[0].actor,allowDelete:t.chain[0].object.authored,commentCount:t.chain[0].object.replyCount??0,isChainContinuation:!0,isPending:g(t.chain[0].id),last:t.chain.length===1,layout:`reply`,likeCount:t.chain[0].object.likeCount??0,object:t.chain[0].object,parentId:U.id,repostCount:t.chain[0].object.repostCount??0,type:`Note`,onClick:()=>{let n=p.current;n&&e&&$.set(e,n.scrollTop),Q(`/notes/${encodeURIComponent(t.chain[0].id)}`)},onDelete:K},t.chain[0].id),c&&a&&t.chain.slice(1).map((r,i)=>{let a=i===t.chain.slice(1).length-1,o=z&&z(n),s=a&&o;return(0,V.jsx)(T,{actor:r.actor,allowDelete:r.object.authored,commentCount:r.object.replyCount??0,isChainContinuation:!0,isPending:g(r.id),last:a&&!s,layout:`reply`,likeCount:r.object.likeCount??0,object:r.object,parentId:U.id,repostCount:r.object.repostCount??0,type:`Note`,onClick:()=>{let t=p.current;t&&e&&$.set(e,t.scrollTop),Q(`/notes/${encodeURIComponent(r.id)}`)},onDelete:K},r.id)}),c&&t.chain.length>1&&!a&&(0,V.jsx)(le,{variant:`expand`,onClick:()=>_e(i)}),c&&a&&o&&z&&z(n)&&(0,V.jsx)(le,{loading:s,variant:`loadMore`,onClick:()=>ve(i,n)}),!r&&(0,V.jsx)(at,{})]},t.mainReply.id)}),k&&(0,V.jsx)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:(0,V.jsx)(re,{size:`md`})})]}),R&&(0,V.jsx)(`div`,{ref:M,className:`h-1`})]})})]})]}),!F&&(0,V.jsxs)(`div`,{className:`pointer-events-none visible! sticky bottom-0 hidden items-end justify-between px-10 pb-[42px] lg:flex!`,children:[(0,V.jsx)(`div`,{className:`pointer-events-auto text-gray-600`,children:s(U.content??``)}),(0,V.jsxs)(`div`,{className:`pointer-events-auto min-w-10 text-right text-gray-600 transition-all duration-200 ease-out`,children:[xe,`%`]},xe)]})]})})}):(0,V.jsx)(`div`,{className:`max-h-full overflow-auto rounded-md ${n===`DARK`&&`dark`} ${(n===`LIGHT`||n===`SEPIA`)&&`light`} ${W[n].background}`,children:(0,V.jsx)(`div`,{className:`flex h-full flex-col`,children:(0,V.jsx)(`div`,{className:`relative flex-1`,children:(0,V.jsx)(`div`,{className:`sticky top-0 z-50 flex h-[102px] items-center justify-center rounded-t-md border-b max-md:h-[68px] ${W[n].background} ${W[n].border}`,children:(0,V.jsxs)(`div`,{className:`grid w-full px-8 max-lg:px-4`,style:{gridTemplateColumns:`1fr minmax(0,${q}) 1fr`},children:[(0,V.jsx)(`div`,{className:`flex items-center`,children:(0,V.jsx)(h,{className:W[n].button,onClick:t})}),(0,V.jsx)(`div`,{className:`col-[2/3] mx-auto flex w-full items-center gap-3 max-md:hidden`,children:(0,V.jsx)(`div`,{className:`grow text-center`,children:(0,V.jsx)(`span`,{children:`Error loading article.`})})})]})})})})})},st=({isLoading:e,activities:t,currentTopic:n,fetchNextPage:r,hasNextPage:s,isFetchingNextPage:l,onTopicChange:u})=>{let f=y(),{canGoBack:m,goBack:h}=a(),[v,b]=(0,B.useState)(!1),S=i(),{topicsQuery:C}=x(),{data:w}=C,ne=w&&w.topics.length>0;(0,B.useEffect)(()=>{b(!!S.postId)},[S.postId]);let E=(0,B.useRef)(null),D=(0,B.useRef)(null),O=(0,B.useRef)(null);(0,B.useEffect)(()=>(E.current&&E.current.disconnect(),E.current=new IntersectionObserver(e=>{e[0].isIntersecting&&s&&!l&&r()}),D.current&&E.current.observe(D.current),O.current&&E.current.observe(O.current),()=>{E.current&&E.current.disconnect()}),[s,l,r]);let k=Math.max(0,Math.floor(t.length*.75)-1);return(0,V.jsxs)(ee,{children:[ne&&(0,V.jsx)(z,{currentTopic:n,excludeTopics:[`top`],onTopicChange:u}),(0,V.jsx)(`div`,{className:`flex w-full flex-col`,children:(0,V.jsx)(`div`,{className:`w-full`,children:t.length>0?(0,V.jsx)(`div`,{className:`my-4`,children:(0,V.jsx)(`div`,{className:`mx-auto flex min-h-[calc(100dvh_-_117px)] items-start gap-11`,children:(0,V.jsx)(`div`,{className:`flex w-full min-w-0 flex-col items-center`,children:(0,V.jsxs)(`div`,{className:`flex w-full min-w-0 flex-col items-start`,children:[(0,V.jsxs)(`ul`,{className:`mx-auto flex w-full flex-col`,"data-testid":`inbox-list`,children:[t.map((n,r)=>(0,V.jsxs)(`li`,{"data-testid":`inbox-item`,"data-test-view-article":!0,children:[(0,V.jsx)(T,{actor:n.actor,allowDelete:n.object.authored,commentCount:n.object.replyCount??0,isLoading:e,isPending:g(n.id),layout:`inbox`,likeCount:n.object.likeCount??0,object:n.object,repostCount:n.object.repostCount??0,type:n.type,onClick:()=>{f(`/reader/${encodeURIComponent(n.id)}`)}}),r<t.length-1&&(0,V.jsx)(te,{}),r===k&&(0,V.jsx)(`div`,{ref:D,className:`h-1`})]},`${n.id}-${n.type}-${r}`)),l&&(0,V.jsx)(`li`,{className:`flex flex-col items-center justify-center gap-4 text-center`,children:(0,V.jsx)(re,{size:`md`})})]}),(0,V.jsx)(`div`,{ref:O,className:`h-1`})]})})})}):n===`following`?(0,V.jsx)(`div`,{className:`mt-[24vh]`,children:(0,V.jsx)(o,{actions:ne?(0,V.jsx)(_,{onClick:()=>f(`/explore`),children:`Find accounts to follow →`}):(0,V.jsx)(_,{asChild:!0,children:(0,V.jsx)(`a`,{href:`https://explore.ghost.org/social-web`,rel:`noopener noreferrer`,target:`_blank`,children:`Find accounts to follow →`})}),description:`Start following publishers to see their long-form posts here.`,title:`Your Reader is empty`,children:(0,V.jsx)(L,{})})}):(0,V.jsx)(`div`,{className:`mt-[24vh]`,children:(0,V.jsx)(o,{description:`Explore other topics for more content.`,title:`Nothing here yet`,children:(0,V.jsx)(L,{})})})})}),(0,V.jsx)(I,{open:v,onOpenChange:e=>{e||(m?h():f(`/reader`)),b(e)},children:(0,V.jsxs)(p,{className:`inset-y-3 h-[calc(100vh-24px)] w-screen max-w-[calc(100vw-24px)] animate-none! p-0 focus:outline-hidden dark:bg-gray-950`,children:[(0,V.jsxs)(j,{className:`hidden`,children:[(0,V.jsx)(c,{children:`Reader`}),(0,V.jsx)(d,{children:`Ghost reader for long form articles`})]}),S.postId&&(0,V.jsx)(ot,{postId:S.postId,onClose:()=>{m?h():f(`/reader`)}})]})})]})},ct=()=>{let[e,t]=(0,B.useState)(`following`),{inboxQuery:n}=f({enabled:e===`following`}),{discoveryFeedQuery:r}=u({enabled:e!==`following`,topic:e}),{data:i,error:a,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l}=e===`following`?n:r,d=a&&C(a)&&a.statusCode===404&&e!==`following`;return a&&C(a)&&!d?(0,V.jsx)(m,{errorCode:a.code,statusCode:a.statusCode}):(0,V.jsx)(st,{activities:d?[]:i?.pages.flatMap(e=>e.posts)??Array.from({length:5},(e,t)=>({id:`placeholder-${t}`,object:{}})),currentTopic:e,fetchNextPage:o,hasNextPage:s,isFetchingNextPage:c,isLoading:l,onTopicChange:t})};export{ct as default};
|