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
package/pnpm-workspace.yaml
CHANGED
|
@@ -5,7 +5,7 @@ catalog:
|
|
|
5
5
|
'@codemirror/lang-html': 6.4.11
|
|
6
6
|
'@codemirror/lang-javascript': 6.2.5
|
|
7
7
|
'@codemirror/lang-json': 6.0.2
|
|
8
|
-
'@codemirror/lang-markdown': 6.5.
|
|
8
|
+
'@codemirror/lang-markdown': 6.5.1
|
|
9
9
|
'@codemirror/lang-yaml': 6.1.3
|
|
10
10
|
'@codemirror/language': 6.12.4
|
|
11
11
|
'@codemirror/search': 6.7.1
|
|
@@ -22,6 +22,7 @@ catalog:
|
|
|
22
22
|
'@radix-ui/react-context-menu': 2.3.2
|
|
23
23
|
'@radix-ui/react-form': 0.1.11
|
|
24
24
|
'@radix-ui/react-popover': 1.1.18
|
|
25
|
+
'@radix-ui/react-radio-group': 1.4.2
|
|
25
26
|
'@radix-ui/react-separator': 1.1.11
|
|
26
27
|
'@radix-ui/react-switch': 1.3.2
|
|
27
28
|
'@radix-ui/react-tabs': 1.1.16
|
|
@@ -33,24 +34,25 @@ catalog:
|
|
|
33
34
|
'@tailwindcss/postcss': 4.2.2
|
|
34
35
|
'@tailwindcss/vite': 4.2.2
|
|
35
36
|
'@tanstack/react-query': 5.101.2
|
|
36
|
-
'@tanstack/react-virtual': 3.14.
|
|
37
|
+
'@tanstack/react-virtual': 3.14.6
|
|
37
38
|
'@testing-library/jest-dom': 6.9.1
|
|
38
39
|
'@testing-library/react': 14.3.1
|
|
39
|
-
'@tryghost/api-framework': 3.
|
|
40
|
-
'@tryghost/brute-knex': 3.2.
|
|
40
|
+
'@tryghost/api-framework': 3.3.5
|
|
41
|
+
'@tryghost/brute-knex': 3.2.1
|
|
41
42
|
'@tryghost/color-utils': 0.2.19
|
|
42
43
|
'@tryghost/custom-fonts': 1.0.11
|
|
43
|
-
'@tryghost/debug': 2.
|
|
44
|
-
'@tryghost/domain-events': 3.
|
|
45
|
-
'@tryghost/errors':
|
|
44
|
+
'@tryghost/debug': 2.3.5
|
|
45
|
+
'@tryghost/domain-events': 3.3.5
|
|
46
|
+
'@tryghost/errors': 3.3.5
|
|
46
47
|
'@tryghost/helpers': 1.1.106
|
|
47
48
|
'@tryghost/limit-service': 1.5.6
|
|
48
|
-
'@tryghost/logging':
|
|
49
|
+
'@tryghost/logging': 5.3.0
|
|
49
50
|
'@tryghost/mongo-knex': 0.10.1
|
|
50
51
|
'@tryghost/nql': 0.13.1
|
|
51
52
|
'@tryghost/nql-lang': 0.6.6
|
|
52
53
|
'@tryghost/string': 0.3.5
|
|
53
54
|
'@tryghost/timezone-data': 1.0.0
|
|
55
|
+
'@tryghost/tpl': 2.3.5
|
|
54
56
|
'@types/express': 4.17.25
|
|
55
57
|
'@types/html-minifier': ^4.0.6
|
|
56
58
|
'@types/jest': 29.5.14
|
|
@@ -70,6 +72,8 @@ catalog:
|
|
|
70
72
|
'@vitejs/plugin-react': 6.0.3
|
|
71
73
|
'@vitest/browser-playwright': 4.1.9
|
|
72
74
|
'@vitest/coverage-v8': 4.1.9
|
|
75
|
+
ajv: 8.20.0
|
|
76
|
+
ajv-formats: 3.0.1
|
|
73
77
|
better-sqlite3: 12.11.1
|
|
74
78
|
bson-objectid: 2.0.4
|
|
75
79
|
c8: 11.0.0
|
|
@@ -93,19 +97,21 @@ catalog:
|
|
|
93
97
|
fs-extra: 11.3.6
|
|
94
98
|
glob: 13.0.6
|
|
95
99
|
globals: 17.7.0
|
|
100
|
+
js-yaml: 4.3.0
|
|
96
101
|
jsdom: 29.1.1
|
|
97
102
|
jsonc-parser: 3.3.1
|
|
98
103
|
knex-migrator: 5.4.1
|
|
99
104
|
lodash: 4.18.1
|
|
100
105
|
lucide-react: 1.23.0
|
|
101
106
|
mingo: 2.5.3
|
|
107
|
+
moment: 2.30.1
|
|
108
|
+
moment-timezone: 0.5.45
|
|
102
109
|
msw: 2.14.6
|
|
103
110
|
node-html-markdown: 2.0.0
|
|
104
111
|
postcss: 8.5.16
|
|
105
112
|
preact: ^10.29.2
|
|
106
113
|
react: 18.3.1
|
|
107
114
|
react-dom: 18.3.1
|
|
108
|
-
react-hot-toast: 2.6.0
|
|
109
115
|
react-router: 7.18.1
|
|
110
116
|
semver: 7.8.5
|
|
111
117
|
sinon: 22.0.0
|
|
@@ -127,6 +133,10 @@ catalog:
|
|
|
127
133
|
vitest: 4.1.9
|
|
128
134
|
vitest-browser-react: 2.2.0
|
|
129
135
|
zod: 4.4.3
|
|
136
|
+
form-data: 4.0.6
|
|
137
|
+
'@dnd-kit/core': 6.3.1
|
|
138
|
+
'@dnd-kit/sortable': 7.0.2
|
|
139
|
+
'@dnd-kit/utilities': 3.2.2
|
|
130
140
|
catalogs:
|
|
131
141
|
react17:
|
|
132
142
|
react: 17.0.2
|
|
@@ -156,11 +166,11 @@ allowBuilds:
|
|
|
156
166
|
strictDepBuilds: true
|
|
157
167
|
overrides:
|
|
158
168
|
knex-migrator>knex: 2.4.2
|
|
159
|
-
'@tryghost/errors':
|
|
169
|
+
'@tryghost/errors': 'catalog:'
|
|
160
170
|
'@tryghost/logging': 'catalog:'
|
|
161
171
|
jackspeak: 4.2.3
|
|
162
|
-
moment:
|
|
163
|
-
moment-timezone:
|
|
172
|
+
moment: 'catalog:'
|
|
173
|
+
moment-timezone: 'catalog:'
|
|
164
174
|
nwsapi: 2.2.24
|
|
165
175
|
broccoli-persistent-filter: ^2.3.1
|
|
166
176
|
juice: 9.1.0
|
|
@@ -200,6 +210,7 @@ overrides:
|
|
|
200
210
|
path-to-regexp@<0.1.13: ^0.1.13
|
|
201
211
|
protobufjs@<7.5.5: ^7.5.5
|
|
202
212
|
qs@<6.14.1: ^6.14.2
|
|
213
|
+
supports-color: 10.2.2
|
|
203
214
|
tar@<7.5.11: ^7.5.11
|
|
204
215
|
tmp@<=0.2.3: ^0.2.4
|
|
205
216
|
tough-cookie@<4.1.3: ^4.1.3
|
|
@@ -208,17 +219,20 @@ overrides:
|
|
|
208
219
|
underscore@>=1.3.2 <1.12.1: ^1.12.1
|
|
209
220
|
'@xmldom/xmldom@<0.8.13': ^0.9.0
|
|
210
221
|
perf-primitives: ^0.0.6
|
|
211
|
-
'@tryghost/adapter-base-route-settings': file:components/tryghost-adapter-base-route-settings-0.0.0.tgz
|
|
212
222
|
'@tryghost/adapter-base-redirects': file:components/tryghost-adapter-base-redirects-0.0.0.tgz
|
|
213
|
-
'@tryghost/adapter-base-
|
|
214
|
-
'@tryghost/
|
|
223
|
+
'@tryghost/adapter-base-route-settings': file:components/tryghost-adapter-base-route-settings-0.0.0.tgz
|
|
224
|
+
'@tryghost/admin-api-schema': file:components/tryghost-admin-api-schema-0.0.0.tgz
|
|
215
225
|
'@tryghost/custom-field-types': file:components/tryghost-custom-field-types-0.0.0.tgz
|
|
216
|
-
'@tryghost/
|
|
226
|
+
'@tryghost/i18n': file:components/tryghost-i18n-0.0.0.tgz
|
|
227
|
+
'@tryghost/adapter-base-sso': file:components/tryghost-adapter-base-sso-0.1.1.tgz
|
|
228
|
+
'@tryghost/adapter-base-scheduling': file:components/tryghost-adapter-base-scheduling-0.1.1.tgz
|
|
229
|
+
'@tryghost/adapter-base-cache': file:components/tryghost-adapter-base-cache-0.2.0.tgz
|
|
217
230
|
'@tryghost/kg-card-factory': file:components/tryghost-kg-card-factory-5.2.3.tgz
|
|
218
231
|
'@tryghost/parse-email-address': file:components/tryghost-parse-email-address-0.0.0.tgz
|
|
219
232
|
'@tryghost/kg-utils': file:components/tryghost-kg-utils-1.1.3.tgz
|
|
233
|
+
'@tryghost/kg-clean-basic-html': file:components/tryghost-kg-clean-basic-html-4.3.3.tgz
|
|
220
234
|
'@tryghost/kg-converters': file:components/tryghost-kg-converters-1.2.3.tgz
|
|
221
|
-
|
|
235
|
+
ghost-storage-base: file:components/ghost-storage-base-3.0.0.tgz
|
|
222
236
|
'@tryghost/kg-markdown-html-renderer': file:components/tryghost-kg-markdown-html-renderer-7.2.3.tgz
|
|
223
237
|
'@tryghost/kg-default-cards': file:components/tryghost-kg-default-cards-10.3.3.tgz
|
|
224
238
|
'@tryghost/kg-default-nodes': file:components/tryghost-kg-default-nodes-2.1.3.tgz
|
|
Binary file
|
|
Binary file
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./react-dom-C6aoWSfl.js";import{t as r}from"./jsx-runtime-CtMZ-PAS.js";import{a as i,o as a}from"./dist-BBIJuyPg.js";import{$n as o,lr as s,tr as c}from"./button--i2uMDDn.js";import{t as l}from"./dist-DW0QXQO3.js";import{n as u,t as d}from"./dist-CsekE4FL.js";import{n as f,t as p}from"./dist-DxFLceO5.js";var m=e(t(),1),h=e(n(),1),g=r(),_=function(){return _=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n],t)Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},_.apply(this,arguments)};function v(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}function y(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function b(e,t,n){if(n||arguments.length===2)for(var r=0,i=t.length,a;r<i;r++)(a||!(r in t))&&(a||=Array.prototype.slice.call(t,0,r),a[r]=t[r]);return e.concat(a||Array.prototype.slice.call(t))}var x=Object.defineProperty,S=(e,t)=>{let n={};for(var r in e)x(n,r,{get:e[r],enumerable:!0});return t||x(n,Symbol.toStringTag,{value:`Module`}),n},C=S({default:()=>w}),w=e=>(0,g.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,height:24,width:24,id:`Alert-Triangle--Streamline-Ultimate`,...e,children:[(0,g.jsx)(`desc`,{children:`Alert Triangle Streamline Icon: https://streamlinehq.com`}),(0,g.jsx)(`path`,{d:`m23.77 20.57 -10 -19A2 2 0 0 0 12 0.5a2 2 0 0 0 -1.77 1.07l-10 19a2 2 0 0 0 0.06 2A2 2 0 0 0 2 23.5h20a2 2 0 0 0 1.77 -2.93ZM11 8.5a1 1 0 0 1 2 0v6a1 1 0 0 1 -2 0ZM12.05 20a1.53 1.53 0 0 1 -1.52 -1.47A1.48 1.48 0 0 1 12 17a1.53 1.53 0 0 1 1.52 1.47A1.48 1.48 0 0 1 12.05 20Z`,fill:`currentColor`,strokeWidth:1})]}),T=S({default:()=>E}),E=e=>(0,g.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,height:24,width:24,id:`Information-Circle--Streamline-Ultimate`,...e,children:[(0,g.jsx)(`desc`,{children:`Information Circle Streamline Icon: https://streamlinehq.com`}),(0,g.jsx)(`path`,{d:`M12 0a12 12 0 1 0 12 12A12 12 0 0 0 12 0Zm0.25 5a1.5 1.5 0 1 1 -1.5 1.5 1.5 1.5 0 0 1 1.5 -1.5Zm2.25 13.5h-4a1 1 0 0 1 0 -2h0.75a0.25 0.25 0 0 0 0.25 -0.25v-4.5a0.25 0.25 0 0 0 -0.25 -0.25h-0.75a1 1 0 0 1 0 -2h1a2 2 0 0 1 2 2v4.75a0.25 0.25 0 0 0 0.25 0.25h0.75a1 1 0 0 1 0 2Z`,fill:`currentcolor`,strokeWidth:1})]}),ee=S({default:()=>D}),D=e=>(0,g.jsxs)(`svg`,{height:16,id:`Skull-2--Streamline-Ultimate`,viewBox:`0 0 16 16`,width:16,xmlns:`http://www.w3.org/2000/svg`,...e,children:[(0,g.jsx)(`desc`,{children:`
|
|
2
|
-
Skull 2 Streamline Icon: https://streamlinehq.com
|
|
3
|
-
`}),(0,g.jsxs)(`g`,{children:[(0,g.jsx)(`path`,{d:`M12.333333333333332 7.333333333333333a4.333333333333333 4.333333333333333 0 1 0 -7.333333333333333 3.126666666666667v1.88a1 1 0 0 0 2 0 1 1 0 0 0 2 0 1 1 0 1 0 2 0v-1.88a4.326666666666666 4.326666666666666 0 0 0 1.3333333333333333 -3.126666666666667Zm-6.253333333333334 1a1 1 0 1 1 1 -1 1 1 0 0 1 -1 1Zm4 0a1 1 0 1 1 1 -1 1 1 0 0 1 -1 1Z`,fill:`currentColor`,strokeWidth:.6667}),(0,g.jsx)(`path`,{d:`m1.8666666666666665 3.28 1.22 1.22a0.3466666666666667 0.3466666666666667 0 0 0 0.26666666666666666 0.09333333333333334 0.35333333333333333 0.35333333333333333 0 0 0 0.24666666666666665 -0.14666666666666667 5.133333333333333 5.133333333333333 0 0 1 0.8066666666666666 -0.9733333333333333 0.3133333333333333 0.3133333333333333 0 0 0 0.09999999999999999 -0.2333333333333333 0.3666666666666667 0.3666666666666667 0 0 0 -0.09333333333333334 -0.24666666666666665L3.28 1.8666666666666665A1.1666666666666665 1.1666666666666665 0 0 0 1.8399999999999999 0.11333333333333334a0.6666666666666666 0.6666666666666666 0 0 0 -0.3666666666666667 0.48l-0.09999999999999999 0.5133333333333333a0.31999999999999995 0.31999999999999995 0 0 1 -0.26 0.26666666666666666l-0.52 0.09999999999999999a0.6666666666666666 0.6666666666666666 0 0 0 -0.48 0.3666666666666667A1.1666666666666665 1.1666666666666665 0 0 0 1.8666666666666665 3.28Z`,fill:`currentColor`,strokeWidth:.6667}),(0,g.jsx)(`path`,{d:`M12.4 4.446666666666666a0.35333333333333333 0.35333333333333333 0 0 0 0.24666666666666665 0.14666666666666667 0.3466666666666667 0.3466666666666667 0 0 0 0.26666666666666666 -0.09333333333333334l1.22 -1.22a1.1666666666666665 1.1666666666666665 0 0 0 1.7533333333333332 -1.44 0.6666666666666666 0.6666666666666666 0 0 0 -0.48 -0.3666666666666667l-0.52 -0.09999999999999999a0.31999999999999995 0.31999999999999995 0 0 1 -0.26 -0.26666666666666666l-0.09999999999999999 -0.5133333333333333a0.6666666666666666 0.6666666666666666 0 0 0 -0.3666666666666667 -0.48 1.1666666666666665 1.1666666666666665 0 0 0 -1.44 1.7533333333333332l-1.1333333333333333 1.1266666666666665a0.3666666666666667 0.3666666666666667 0 0 0 -0.09333333333333334 0.24666666666666665 0.3133333333333333 0.3133333333333333 0 0 0 0.09999999999999999 0.2333333333333333 5.133333333333333 5.133333333333333 0 0 1 0.8066666666666666 0.9733333333333333Z`,fill:`currentColor`,strokeWidth:.6667}),(0,g.jsx)(`path`,{d:`M3.6 11.559999999999999a0.33999999999999997 0.33999999999999997 0 0 0 -0.26666666666666666 -0.15333333333333332 0.3466666666666667 0.3466666666666667 0 0 0 -0.26666666666666666 0.09333333333333334l-1.2 1.22a1.1666666666666665 1.1666666666666665 0 0 0 -1.7533333333333332 1.44 0.6666666666666666 0.6666666666666666 0 0 0 0.48 0.3666666666666667l0.52 0.09999999999999999a0.31999999999999995 0.31999999999999995 0 0 1 0.26 0.26666666666666666l0.09999999999999999 0.5133333333333333a0.6666666666666666 0.6666666666666666 0 0 0 0.3666666666666667 0.48 1.1666666666666665 1.1666666666666665 0 0 0 1.44 -1.7533333333333332l1.1333333333333333 -1.1266666666666665a0.36 0.36 0 0 0 0.09333333333333334 -0.24 0.31999999999999995 0.31999999999999995 0 0 0 -0.09999999999999999 -0.24 5.333333333333333 5.333333333333333 0 0 1 -0.8066666666666666 -0.9666666666666666Z`,fill:`currentColor`,strokeWidth:.6667}),(0,g.jsx)(`path`,{d:`m14.133333333333333 12.719999999999999 -1.22 -1.22a0.3466666666666667 0.3466666666666667 0 0 0 -0.26666666666666666 -0.09333333333333334 0.33999999999999997 0.33999999999999997 0 0 0 -0.24666666666666665 0.15333333333333332 5.333333333333333 5.333333333333333 0 0 1 -0.8066666666666666 0.9666666666666666 0.31999999999999995 0.31999999999999995 0 0 0 -0.09999999999999999 0.24 0.36 0.36 0 0 0 0.09333333333333334 0.24l1.1333333333333333 1.1266666666666665a1.1666666666666665 1.1666666666666665 0 0 0 1.44 1.7533333333333332 0.6666666666666666 0.6666666666666666 0 0 0 0.3666666666666667 -0.48l0.09999999999999999 -0.5133333333333333a0.31999999999999995 0.31999999999999995 0 0 1 0.26 -0.26666666666666666l0.52 -0.09999999999999999a0.6666666666666666 0.6666666666666666 0 0 0 0.48 -0.3666666666666667 1.1666666666666665 1.1666666666666665 0 0 0 -1.7533333333333332 -1.44Z`,fill:`currentColor`,strokeWidth:.6667})]})]}),O=S({default:()=>te}),te=e=>(0,g.jsxs)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,height:24,width:24,id:`Check-Circle-1--Streamline-Ultimate`,...e,children:[(0,g.jsx)(`desc`,{children:`Check Circle 1 Streamline Icon: https://streamlinehq.com`}),(0,g.jsx)(`path`,{d:`M12 0a12 12 0 1 0 12 12A12 12 0 0 0 12 0Zm6.93 8.2 -6.85 9.29a1 1 0 0 1 -1.43 0.19l-4.89 -3.91a1 1 0 0 1 -0.15 -1.41A1 1 0 0 1 7 12.21l4.08 3.26L17.32 7a1 1 0 0 1 1.39 -0.21 1 1 0 0 1 0.22 1.41Z`,fill:`currentcolor`,strokeWidth:1})]}),ne=S({default:()=>re}),re=e=>(0,g.jsxs)(`svg`,{viewBox:`-0.75 -0.75 20 20`,xmlns:`http://www.w3.org/2000/svg`,height:24,width:24,...e,children:[(0,g.jsx)(`desc`,{children:`Typography`}),(0,g.jsx)(`path`,{d:`m0.578125 9.827354166666668 8.09375 0`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5}),(0,g.jsx)(`path`,{d:`m12.140625 13.296104166666666 5.78125 0`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5}),(0,g.jsx)(`path`,{d:`M12.140625 16.764854166666666V10.40625a2.890625 2.890625 0 0 1 5.78125 0v6.359375`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5}),(0,g.jsx)(`path`,{d:`M0.578125 16.764854166666666V5.78125a4.046875 4.046875 0 0 1 8.09375 0v10.984375`,fill:`none`,stroke:`currentColor`,strokeLinecap:`round`,strokeLinejoin:`round`,strokeWidth:1.5})]}),ie=o(``,{variants:{size:{sm:`size-3`,md:`size-4`,lg:`size-6`,xl:`size-8`}},defaultVariants:{size:`md`}}),k=Object.entries(Object.assign({"../../assets/icons/error-fill.svg":C,"../../assets/icons/info-fill.svg":T,"../../assets/icons/skull-and-bones.svg":ee,"../../assets/icons/success-fill.svg":O,"../../assets/icons/typography.svg":ne})).reduce((e,[t,n])=>{let r=s(t.match(/[^/]+(?=\.svg$)/)?.[0]??``),i=e=>{let{size:t,className:r,...i}=e,a=c(ie({size:t,className:r}));return m.createElement(n.default,{...i,className:a})};return i.displayName=`Icon.${r}`,e[r]=i,e},{}),ae=k,oe=m.createContext({isDirty:!1,setGlobalDirtyState:()=>{}}),se=({children:e})=>{let[t,n]=(0,m.useState)([]),r=(0,m.useCallback)((e,t)=>{n(n=>t&&!n.includes(e)?[...n,e]:!t&&n.includes(e)?n.filter(t=>t!==e):n)},[]);return(0,g.jsx)(oe.Provider,{value:{isDirty:t.length>0,setGlobalDirtyState:r},children:e})},ce=({...e})=>(0,g.jsx)(l,{className:`toaster group`,style:{"--normal-bg":`var(--background)`,"--normal-text":`var(--foreground)`,"--normal-border":`var(--border)`},theme:`light`,...e}),le=(0,m.createContext)({isAnyTextFieldFocused:!1,setFocusState:()=>{},darkMode:!1}),ue=()=>(0,m.useContext)(le),de=()=>{let e=ue();if(!e)throw Error(`useFocusContext must be used within a FocusProvider`);return e},fe=()=>{let[e,t]=(0,m.useState)(!1);return(0,m.useEffect)(()=>(t(!0),()=>t(!1)),[]),e?(0,h.createPortal)((0,g.jsx)(`div`,{className:me,style:{width:`unset`,height:`unset`},children:(0,g.jsx)(ce,{icons:{error:(0,g.jsx)(k.ErrorFill,{className:`text-red`}),success:(0,g.jsx)(k.SuccessFill,{className:`text-green`}),info:(0,g.jsx)(k.InfoFill,{className:`text-text-tertiary`})},position:`bottom-left`,toastOptions:{classNames:{title:`mt-[-1px]! text-md! font-semibold! leading-tighter! tracking-[0.1px]!`,description:`text-text-primary! text-sm! mt-px!`,icon:`ml-0!`},style:{alignItems:`flex-start`,maxWidth:`290px`}}})}),document.body):null},pe=({darkMode:e,children:t})=>{let[n,r]=(0,m.useState)(!1);return(0,g.jsx)(le.Provider,{value:{isAnyTextFieldFocused:n,setFocusState:e=>{r(e)},darkMode:e},children:(0,g.jsxs)(se,{children:[t,(0,g.jsx)(fe,{})]})})},me=`shade shade-admin shade-activitypub shade-stats shade-posts`,he=({darkMode:e,fetchKoenigLexical:t,className:n,children:r,...i})=>(0,g.jsx)(`div`,{className:a(`shade`,n),...i,children:(0,g.jsx)(pe,{darkMode:e,children:r})});typeof window<`u`&&window.document&&window.document.createElement;function A(e,t,{checkForDefaultPrevented:n=!0}={}){return function(r){if(e?.(r),n===!1||!r.defaultPrevented)return t?.(r)}}var ge=m.useEffectEvent,_e=m.useInsertionEffect;function ve(e){if(typeof ge==`function`)return ge(e);let t=m.useRef(()=>{throw Error(`Cannot call an event handler while rendering.`)});return typeof _e==`function`?_e(()=>{t.current=e}):u(()=>{t.current=e}),m.useMemo(()=>((...e)=>t.current?.(...e)),[])}var ye=m.useInsertionEffect||u;function be({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){let[i,a,o]=xe({defaultProp:t,onChange:n}),s=e!==void 0,c=s?e:i;{let t=m.useRef(e!==void 0);m.useEffect(()=>{let e=t.current;e!==s&&console.warn(`${r} is changing from ${e?`controlled`:`uncontrolled`} to ${s?`controlled`:`uncontrolled`}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),t.current=s},[s,r])}return[c,m.useCallback(t=>{if(s){let n=Se(t)?t(e):t;n!==e&&o.current?.(n)}else a(t)},[s,e,a,o])]}function xe({defaultProp:e,onChange:t}){let[n,r]=m.useState(e),i=m.useRef(n),a=m.useRef(t);return ye(()=>{a.current=t},[t]),m.useEffect(()=>{i.current!==n&&(a.current?.(n),i.current=n)},[n,i]),[n,r,a]}function Se(e){return typeof e==`function`}var Ce=`DismissableLayer`,j=`dismissableLayer.update`,we=`dismissableLayer.pointerDownOutside`,Te=`dismissableLayer.focusOutside`,Ee,M=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set,dismissableSurfaces:new Set}),De=m.forwardRef((e,t)=>{let{disableOutsidePointerEvents:n=!1,deferPointerDownOutside:r=!1,onEscapeKeyDown:a,onPointerDownOutside:o,onFocusOutside:s,onInteractOutside:c,onDismiss:l,...u}=e,d=m.useContext(M),[f,h]=m.useState(null),_=f?.ownerDocument??globalThis?.document,[,v]=m.useState({}),y=i(t,h),b=Array.from(d.layers),[x]=[...d.layersWithOutsidePointerEventsDisabled].slice(-1),S=b.indexOf(x),C=f?b.indexOf(f):-1,w=d.layersWithOutsidePointerEventsDisabled.size>0,T=C>=S,E=m.useRef(!1),ee=je(e=>{let t=e.target;if(!(t instanceof Node))return;let n=[...d.branches].some(e=>e.contains(t));!T||n||(o?.(e),c?.(e),e.defaultPrevented||l?.())},{ownerDocument:_,deferPointerDownOutside:r,isDeferredPointerDownOutsideRef:E,dismissableSurfaces:d.dismissableSurfaces}),D=Me(e=>{if(r&&E.current)return;let t=e.target;[...d.branches].some(e=>e.contains(t))||(s?.(e),c?.(e),e.defaultPrevented||l?.())},_),O=f?C===b.length-1:!1,te=ve(e=>{e.key===`Escape`&&(a?.(e),!e.defaultPrevented&&l&&(e.preventDefault(),l()))});return m.useEffect(()=>{if(O)return _.addEventListener(`keydown`,te,{capture:!0}),()=>_.removeEventListener(`keydown`,te,{capture:!0})},[_,O]),m.useEffect(()=>{if(f)return n&&(d.layersWithOutsidePointerEventsDisabled.size===0&&(Ee=_.body.style.pointerEvents,_.body.style.pointerEvents=`none`),d.layersWithOutsidePointerEventsDisabled.add(f)),d.layers.add(f),Ne(),()=>{n&&(d.layersWithOutsidePointerEventsDisabled.delete(f),d.layersWithOutsidePointerEventsDisabled.size===0&&(_.body.style.pointerEvents=Ee))}},[f,_,n,d]),m.useEffect(()=>()=>{f&&(d.layers.delete(f),d.layersWithOutsidePointerEventsDisabled.delete(f),Ne())},[f,d]),m.useEffect(()=>{let e=()=>v({});return document.addEventListener(j,e),()=>document.removeEventListener(j,e)},[]),(0,g.jsx)(p.div,{...u,ref:y,style:{pointerEvents:w?T?`auto`:`none`:void 0,...e.style},onFocusCapture:A(e.onFocusCapture,D.onFocusCapture),onBlurCapture:A(e.onBlurCapture,D.onBlurCapture),onPointerDownCapture:A(e.onPointerDownCapture,ee.onPointerDownCapture)})});De.displayName=Ce;var Oe=`DismissableLayerBranch`,ke=m.forwardRef((e,t)=>{let n=m.useContext(M),r=m.useRef(null),a=i(t,r);return m.useEffect(()=>{let e=r.current;if(e)return n.branches.add(e),()=>{n.branches.delete(e)}},[n.branches]),(0,g.jsx)(p.div,{...e,ref:a})});ke.displayName=Oe;function Ae(){let e=m.useContext(M),[t,n]=m.useState(null);return m.useEffect(()=>{if(t)return e.dismissableSurfaces.add(t),()=>{e.dismissableSurfaces.delete(t)}},[t,e.dismissableSurfaces]),n}function je(e,t){let{ownerDocument:n=globalThis?.document,deferPointerDownOutside:r=!1,isDeferredPointerDownOutsideRef:i,dismissableSurfaces:a}=t,o=d(e),s=m.useRef(!1),c=m.useRef(!1),l=m.useRef(new Map),u=m.useRef(()=>{});return m.useEffect(()=>{function e(){c.current=!1,i.current=!1,l.current.clear()}function t(){return Array.from(l.current.values()).some(Boolean)}function d(e){if(!c.current)return;let t=e.target;t instanceof Node&&[...a].some(e=>e.contains(t))||l.current.set(e.type,!0),e.type===`click`&&window.setTimeout(()=>{c.current&&u.current()},0)}function f(e){c.current&&l.current.set(e.type,!1)}let p=a=>{if(a.target&&!s.current){let s=function(){n.removeEventListener(`click`,u.current);let r=t();e(),r||Pe(we,o,d,{discrete:!0})},d={originalEvent:a};c.current=!0,i.current=r&&a.button===0,l.current.clear(),!r||a.button!==0?s():(n.removeEventListener(`click`,u.current),u.current=s,n.addEventListener(`click`,u.current,{once:!0}))}else n.removeEventListener(`click`,u.current),e();s.current=!1},m=[`pointerup`,`mousedown`,`mouseup`,`touchstart`,`touchend`,`click`];for(let e of m)n.addEventListener(e,d,!0),n.addEventListener(e,f);let h=window.setTimeout(()=>{n.addEventListener(`pointerdown`,p)},0);return()=>{window.clearTimeout(h),n.removeEventListener(`pointerdown`,p),n.removeEventListener(`click`,u.current);for(let e of m)n.removeEventListener(e,d,!0),n.removeEventListener(e,f)}},[n,o,r,i,a]),{onPointerDownCapture:()=>s.current=!0}}function Me(e,t=globalThis?.document){let n=d(e),r=m.useRef(!1);return m.useEffect(()=>{let e=e=>{e.target&&!r.current&&Pe(Te,n,{originalEvent:e},{discrete:!1})};return t.addEventListener(`focusin`,e),()=>t.removeEventListener(`focusin`,e)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function Ne(){let e=new CustomEvent(j);document.dispatchEvent(e)}function Pe(e,t,n,{discrete:r}){let i=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&i.addEventListener(e,t,{once:!0}),r?f(i,a):i.dispatchEvent(a)}var N=0,P=null;function Fe(){m.useEffect(()=>{P||={start:Ie(),end:Ie()};let{start:e,end:t}=P;return document.body.firstElementChild!==e&&document.body.insertAdjacentElement(`afterbegin`,e),document.body.lastElementChild!==t&&document.body.insertAdjacentElement(`beforeend`,t),N++,()=>{N===1&&(P?.start.remove(),P?.end.remove(),P=null),N=Math.max(0,N-1)}},[])}function Ie(){let e=document.createElement(`span`);return e.setAttribute(`data-radix-focus-guard`,``),e.tabIndex=0,e.style.outline=`none`,e.style.opacity=`0`,e.style.position=`fixed`,e.style.pointerEvents=`none`,e}var F=`focusScope.autoFocusOnMount`,I=`focusScope.autoFocusOnUnmount`,Le={bubbles:!1,cancelable:!0},Re=`FocusScope`,ze=m.forwardRef((e,t)=>{let{loop:n=!1,trapped:r=!1,onMountAutoFocus:a,onUnmountAutoFocus:o,...s}=e,[c,l]=m.useState(null),u=d(a),f=d(o),h=m.useRef(null),_=i(t,l),v=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let e=function(e){if(v.paused||!c)return;let t=e.target;c.contains(t)?h.current=t:L(h.current,{select:!0})},t=function(e){if(v.paused||!c)return;let t=e.relatedTarget;t!==null&&(c.contains(t)||L(h.current,{select:!0}))},n=function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&L(c)};document.addEventListener(`focusin`,e),document.addEventListener(`focusout`,t);let r=new MutationObserver(n);return c&&r.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener(`focusin`,e),document.removeEventListener(`focusout`,t),r.disconnect()}}},[r,c,v.paused]),m.useEffect(()=>{if(c){Ke.add(v);let e=document.activeElement;if(!c.contains(e)){let t=new CustomEvent(F,Le);c.addEventListener(F,u),c.dispatchEvent(t),t.defaultPrevented||(Be(Ye(He(c)),{select:!0}),document.activeElement===e&&L(c))}return()=>{c.removeEventListener(F,u),setTimeout(()=>{let t=new CustomEvent(I,Le);c.addEventListener(I,f),c.dispatchEvent(t),t.defaultPrevented||L(e??document.body,{select:!0}),c.removeEventListener(I,f),Ke.remove(v)},0)}}},[c,u,f,v]);let y=m.useCallback(e=>{if(!n&&!r||v.paused)return;let t=e.key===`Tab`&&!e.altKey&&!e.ctrlKey&&!e.metaKey,i=document.activeElement;if(t&&i){let t=e.currentTarget,[r,a]=Ve(t);r&&a?!e.shiftKey&&i===a?(e.preventDefault(),n&&L(r,{select:!0})):e.shiftKey&&i===r&&(e.preventDefault(),n&&L(a,{select:!0})):i===t&&e.preventDefault()}},[n,r,v.paused]);return(0,g.jsx)(p.div,{tabIndex:-1,...s,ref:_,onKeyDown:y})});ze.displayName=Re;function Be(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(L(r,{select:t}),document.activeElement!==n)return}function Ve(e){let t=He(e);return[Ue(t,e),Ue(t.reverse(),e)]}function He(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t=e.tagName===`INPUT`&&e.type===`hidden`;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ue(e,t){for(let n of e)if(!We(n,{upTo:t}))return n}function We(e,{upTo:t}){if(getComputedStyle(e).visibility===`hidden`)return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display===`none`)return!0;e=e.parentElement}return!1}function Ge(e){return e instanceof HTMLInputElement&&`select`in e}function L(e,{select:t=!1}={}){if(e&&e.focus){let n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&Ge(e)&&t&&e.select()}}var Ke=qe();function qe(){let e=[];return{add(t){let n=e[0];t!==n&&n?.pause(),e=Je(e,t),e.unshift(t)},remove(t){e=Je(e,t),e[0]?.resume()}}}function Je(e,t){let n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function Ye(e){return e.filter(e=>e.tagName!==`A`)}var Xe=m.useId||(()=>void 0),Ze=0;function Qe(e){let[t,n]=m.useState(Xe());return u(()=>{e||n(e=>e??String(Ze++))},[e]),e||(t?`radix-${t}`:``)}var $e=`Portal`,et=m.forwardRef((e,t)=>{let{container:n,...r}=e,[i,a]=m.useState(!1);u(()=>a(!0),[]);let o=n||i&&globalThis?.document?.body;return o?h.createPortal((0,g.jsx)(p.div,{...r,ref:t}),o):null});et.displayName=$e;function tt(e,t){return m.useReducer((e,n)=>t[e][n]??e,e)}var nt=e=>{let{present:t,children:n}=e,r=rt(t),i=typeof n==`function`?n({present:r.isPresent}):m.Children.only(n),a=at(r.ref,ot(i));return typeof n==`function`||r.isPresent?m.cloneElement(i,{ref:a}):null};nt.displayName=`Presence`;function rt(e){let[t,n]=m.useState(),r=m.useRef(null),i=m.useRef(e),a=m.useRef(`none`),[o,s]=tt(e?`mounted`:`unmounted`,{mounted:{UNMOUNT:`unmounted`,ANIMATION_OUT:`unmountSuspended`},unmountSuspended:{MOUNT:`mounted`,ANIMATION_END:`unmounted`},unmounted:{MOUNT:`mounted`}});return m.useEffect(()=>{let e=R(r.current);a.current=o===`mounted`?e:`none`},[o]),u(()=>{let t=r.current,n=i.current;if(n!==e){let r=a.current,o=R(t);e?s(`MOUNT`):o===`none`||t?.display===`none`?s(`UNMOUNT`):s(n&&r!==o?`ANIMATION_OUT`:`UNMOUNT`),i.current=e}},[e,s]),u(()=>{if(t){let e,n=t.ownerDocument.defaultView??window,o=a=>{let o=R(r.current).includes(CSS.escape(a.animationName));if(a.target===t&&o&&(s(`ANIMATION_END`),!i.current)){let r=t.style.animationFillMode;t.style.animationFillMode=`forwards`,e=n.setTimeout(()=>{t.style.animationFillMode===`forwards`&&(t.style.animationFillMode=r)})}},c=e=>{e.target===t&&(a.current=R(r.current))};return t.addEventListener(`animationstart`,c),t.addEventListener(`animationcancel`,o),t.addEventListener(`animationend`,o),()=>{n.clearTimeout(e),t.removeEventListener(`animationstart`,c),t.removeEventListener(`animationcancel`,o),t.removeEventListener(`animationend`,o)}}else s(`ANIMATION_END`)},[t,s]),{isPresent:[`mounted`,`unmountSuspended`].includes(o),ref:m.useCallback(e=>{r.current=e?getComputedStyle(e):null,n(e)},[])}}function it(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function at(...e){let t=m.useRef(e);return t.current=e,m.useCallback(e=>{let n=t.current,r=!1,i=n.map(t=>{let n=it(t,e);return!r&&typeof n==`function`&&(r=!0),n});if(r)return()=>{for(let e=0;e<i.length;e++){let t=i[e];typeof t==`function`?t():it(n[e],null)}}},[])}function R(e){return e?.animationName||`none`}function ot(e){let t=Object.getOwnPropertyDescriptor(e.props,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,`ref`)?.get,n=t&&`isReactWarning`in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var st=function(e){return typeof document>`u`?null:(Array.isArray(e)?e[0]:e).ownerDocument.body},z=new WeakMap,B=new WeakMap,V={},ct=0,lt=function(e){return e&&(e.host||lt(e.parentNode))},ut=function(e,t){return t.map(function(t){if(e.contains(t))return t;var n=lt(t);return n&&e.contains(n)?n:(console.error(`aria-hidden`,t,`in not contained inside`,e,`. Doing nothing`),null)}).filter(function(e){return!!e})},dt=function(e,t,n,r){var i=ut(t,Array.isArray(e)?e:[e]);V[n]||(V[n]=new WeakMap);var a=V[n],o=[],s=new Set,c=new Set(i),l=function(e){!e||s.has(e)||(s.add(e),l(e.parentNode))};i.forEach(l);var u=function(e){!e||c.has(e)||Array.prototype.forEach.call(e.children,function(e){if(s.has(e))u(e);else try{var t=e.getAttribute(r),i=t!==null&&t!==`false`,c=(z.get(e)||0)+1,l=(a.get(e)||0)+1;z.set(e,c),a.set(e,l),o.push(e),c===1&&i&&B.set(e,!0),l===1&&e.setAttribute(n,`true`),i||e.setAttribute(r,`true`)}catch(t){console.error(`aria-hidden: cannot operate on `,e,t)}})};return u(t),s.clear(),ct++,function(){o.forEach(function(e){var t=z.get(e)-1,i=a.get(e)-1;z.set(e,t),a.set(e,i),t||(B.has(e)||e.removeAttribute(r),B.delete(e)),i||e.removeAttribute(n)}),ct--,ct||(z=new WeakMap,z=new WeakMap,B=new WeakMap,V={})}},ft=function(e,t,n){n===void 0&&(n=`data-aria-hidden`);var r=Array.from(Array.isArray(e)?e:[e]),i=t||st(e);return i?(r.push.apply(r,Array.from(i.querySelectorAll(`[aria-live], script`))),dt(r,i,n,`aria-hidden`)):function(){return null}},H=`right-scroll-bar-position`,U=`width-before-scroll-bar`,pt=`with-scroll-bars-hidden`,mt=`--removed-body-scroll-bar-size`;function W(e,t){return typeof e==`function`?e(t):e&&(e.current=t),e}function ht(e,t){var n=(0,m.useState)(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(e){var t=n.value;t!==e&&(n.value=e,n.callback(e,t))}}}})[0];return n.callback=t,n.facade}var gt=typeof window<`u`?m.useLayoutEffect:m.useEffect,_t=new WeakMap;function vt(e,t){var n=ht(t||null,function(t){return e.forEach(function(e){return W(e,t)})});return gt(function(){var t=_t.get(n);if(t){var r=new Set(t),i=new Set(e),a=n.current;r.forEach(function(e){i.has(e)||W(e,null)}),i.forEach(function(e){r.has(e)||W(e,a)})}_t.set(n,e)},[e]),n}function yt(e){return e}function bt(e,t){t===void 0&&(t=yt);var n=[],r=!1;return{read:function(){if(r)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(e){var i=t(e,r);return n.push(i),function(){n=n.filter(function(e){return e!==i})}},assignSyncMedium:function(e){for(r=!0;n.length;){var t=n;n=[],t.forEach(e)}n={push:function(t){return e(t)},filter:function(){return n}}},assignMedium:function(e){r=!0;var t=[];if(n.length){var i=n;n=[],i.forEach(e),t=n}var a=function(){var n=t;t=[],n.forEach(e)},o=function(){return Promise.resolve().then(a)};o(),n={push:function(e){t.push(e),o()},filter:function(e){return t=t.filter(e),n}}}}}function xt(e){e===void 0&&(e={});var t=bt(null);return t.options=_({async:!0,ssr:!1},e),t}var St=function(e){var t=e.sideCar,n=v(e,[`sideCar`]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error(`Sidecar medium not found`);return m.createElement(r,_({},n))};St.isSideCarExport=!0;function Ct(e,t){return e.useMedium(t),St}var wt=xt(),G=function(){},K=m.forwardRef(function(e,t){var n=m.useRef(null),r=m.useState({onScrollCapture:G,onWheelCapture:G,onTouchMoveCapture:G}),i=r[0],a=r[1],o=e.forwardProps,s=e.children,c=e.className,l=e.removeScrollBar,u=e.enabled,d=e.shards,f=e.sideCar,p=e.noRelative,h=e.noIsolation,g=e.inert,y=e.allowPinchZoom,b=e.as,x=b===void 0?`div`:b,S=e.gapMode,C=v(e,[`forwardProps`,`children`,`className`,`removeScrollBar`,`enabled`,`shards`,`sideCar`,`noRelative`,`noIsolation`,`inert`,`allowPinchZoom`,`as`,`gapMode`]),w=f,T=vt([n,t]),E=_(_({},C),i);return m.createElement(m.Fragment,null,u&&m.createElement(w,{sideCar:wt,removeScrollBar:l,shards:d,noRelative:p,noIsolation:h,inert:g,setCallbacks:a,allowPinchZoom:!!y,lockRef:n,gapMode:S}),o?m.cloneElement(m.Children.only(s),_(_({},E),{ref:T})):m.createElement(x,_({},E,{className:c,ref:T}),s))});K.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},K.classNames={fullWidth:U,zeroRight:H};var Tt,Et=function(){if(Tt)return Tt;if(typeof __webpack_nonce__<`u`)return __webpack_nonce__};function Dt(){if(!document)return null;var e=document.createElement(`style`);e.type=`text/css`;var t=Et();return t&&e.setAttribute(`nonce`,t),e}function Ot(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function kt(e){(document.head||document.getElementsByTagName(`head`)[0]).appendChild(e)}var At=function(){var e=0,t=null;return{add:function(n){e==0&&(t=Dt())&&(Ot(t,n),kt(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},jt=function(){var e=At();return function(t,n){m.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},Mt=function(){var e=jt();return function(t){var n=t.styles,r=t.dynamic;return e(n,r),null}},Nt={left:0,top:0,right:0,gap:0},q=function(e){return parseInt(e||``,10)||0},Pt=function(e){var t=window.getComputedStyle(document.body),n=t[e===`padding`?`paddingLeft`:`marginLeft`],r=t[e===`padding`?`paddingTop`:`marginTop`],i=t[e===`padding`?`paddingRight`:`marginRight`];return[q(n),q(r),q(i)]},Ft=function(e){if(e===void 0&&(e=`margin`),typeof window>`u`)return Nt;var t=Pt(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},It=Mt(),J=`data-scroll-locked`,Lt=function(e,t,n,r){var i=e.left,a=e.top,o=e.right,s=e.gap;return n===void 0&&(n=`margin`),`
|
|
4
|
-
.${pt} {
|
|
5
|
-
overflow: hidden ${r};
|
|
6
|
-
padding-right: ${s}px ${r};
|
|
7
|
-
}
|
|
8
|
-
body[${J}] {
|
|
9
|
-
overflow: hidden ${r};
|
|
10
|
-
overscroll-behavior: contain;
|
|
11
|
-
${[t&&`position: relative ${r};`,n===`margin`&&`
|
|
12
|
-
padding-left: ${i}px;
|
|
13
|
-
padding-top: ${a}px;
|
|
14
|
-
padding-right: ${o}px;
|
|
15
|
-
margin-left:0;
|
|
16
|
-
margin-top:0;
|
|
17
|
-
margin-right: ${s}px ${r};
|
|
18
|
-
`,n===`padding`&&`padding-right: ${s}px ${r};`].filter(Boolean).join(``)}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
.${H} {
|
|
22
|
-
right: ${s}px ${r};
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
.${U} {
|
|
26
|
-
margin-right: ${s}px ${r};
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
.${H} .${H} {
|
|
30
|
-
right: 0 ${r};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.${U} .${U} {
|
|
34
|
-
margin-right: 0 ${r};
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
body[${J}] {
|
|
38
|
-
${mt}: ${s}px;
|
|
39
|
-
}
|
|
40
|
-
`},Rt=function(){var e=parseInt(document.body.getAttribute(`data-scroll-locked`)||`0`,10);return isFinite(e)?e:0},zt=function(){m.useEffect(function(){return document.body.setAttribute(J,(Rt()+1).toString()),function(){var e=Rt()-1;e<=0?document.body.removeAttribute(J):document.body.setAttribute(J,e.toString())}},[])},Bt=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,i=r===void 0?`margin`:r;zt();var a=m.useMemo(function(){return Ft(i)},[i]);return m.createElement(It,{styles:Lt(a,!t,i,n?``:`!important`)})},Y=!1;if(typeof window<`u`)try{var X=Object.defineProperty({},"passive",{get:function(){return Y=!0,!0}});window.addEventListener(`test`,X,X),window.removeEventListener(`test`,X,X)}catch{Y=!1}var Z=Y?{passive:!1}:!1,Vt=function(e){return e.tagName===`TEXTAREA`},Ht=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!==`hidden`&&!(n.overflowY===n.overflowX&&!Vt(e)&&n[t]===`visible`)},Ut=function(e){return Ht(e,`overflowY`)},Wt=function(e){return Ht(e,`overflowX`)},Gt=function(e,t){var n=t.ownerDocument,r=t;do{if(typeof ShadowRoot<`u`&&r instanceof ShadowRoot&&(r=r.host),Jt(e,r)){var i=Yt(e,r);if(i[1]>i[2])return!0}r=r.parentNode}while(r&&r!==n.body);return!1},Kt=function(e){return[e.scrollTop,e.scrollHeight,e.clientHeight]},qt=function(e){return[e.scrollLeft,e.scrollWidth,e.clientWidth]},Jt=function(e,t){return e===`v`?Ut(t):Wt(t)},Yt=function(e,t){return e===`v`?Kt(t):qt(t)},Xt=function(e,t){return e===`h`&&t===`rtl`?-1:1},Zt=function(e,t,n,r,i){var a=Xt(e,window.getComputedStyle(t).direction),o=a*r,s=n.target,c=t.contains(s),l=!1,u=o>0,d=0,f=0;do{if(!s)break;var p=Yt(e,s),m=p[0],h=p[1]-p[2]-a*m;(m||h)&&Jt(e,s)&&(d+=h,f+=m);var g=s.parentNode;s=g&&g.nodeType===Node.DOCUMENT_FRAGMENT_NODE?g.host:g}while(!c&&s!==document.body||c&&(t.contains(s)||t===s));return(u&&(i&&Math.abs(d)<1||!i&&o>d)||!u&&(i&&Math.abs(f)<1||!i&&-o>f))&&(l=!0),l},Q=function(e){return`changedTouches`in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Qt=function(e){return[e.deltaX,e.deltaY]},$t=function(e){return e&&`current`in e?e.current:e},en=function(e,t){return e[0]===t[0]&&e[1]===t[1]},tn=function(e){return`
|
|
41
|
-
.block-interactivity-${e} {pointer-events: none;}
|
|
42
|
-
.allow-interactivity-${e} {pointer-events: all;}
|
|
43
|
-
`},nn=0,$=[];function rn(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),i=m.useState(nn++)[0],a=m.useState(Mt)[0],o=m.useRef(e);m.useEffect(function(){o.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add(`block-interactivity-${i}`);var t=b([e.lockRef.current],(e.shards||[]).map($t),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add(`allow-interactivity-${i}`)}),function(){document.body.classList.remove(`block-interactivity-${i}`),t.forEach(function(e){return e.classList.remove(`allow-interactivity-${i}`)})}}},[e.inert,e.lockRef.current,e.shards]);var s=m.useCallback(function(e,t){if(`touches`in e&&e.touches.length===2||e.type===`wheel`&&e.ctrlKey)return!o.current.allowPinchZoom;var i=Q(e),a=n.current,s=`deltaX`in e?e.deltaX:a[0]-i[0],c=`deltaY`in e?e.deltaY:a[1]-i[1],l,u=e.target,d=Math.abs(s)>Math.abs(c)?`h`:`v`;if(`touches`in e&&d===`h`&&u.type===`range`)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===u||p.contains(u)))return!1;var m=Gt(d,u);if(!m)return!0;if(m?l=d:(l=d===`v`?`h`:`v`,m=Gt(d,u)),!m)return!1;if(!r.current&&`changedTouches`in e&&(s||c)&&(r.current=l),!l)return!0;var h=r.current||l;return Zt(h,t,e,h===`h`?s:c,!0)},[]),c=m.useCallback(function(e){var n=e;if(!(!$.length||$[$.length-1]!==a)){var r=`deltaY`in n?Qt(n):Q(n),i=t.current.filter(function(e){return e.name===n.type&&(e.target===n.target||n.target===e.shadowParent)&&en(e.delta,r)})[0];if(i&&i.should){n.cancelable&&n.preventDefault();return}if(!i){var c=(o.current.shards||[]).map($t).filter(Boolean).filter(function(e){return e.contains(n.target)});(c.length>0?s(n,c[0]):!o.current.noIsolation)&&n.cancelable&&n.preventDefault()}}},[]),l=m.useCallback(function(e,n,r,i){var a={name:e,delta:n,target:r,should:i,shadowParent:an(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),u=m.useCallback(function(e){n.current=Q(e),r.current=void 0},[]),d=m.useCallback(function(t){l(t.type,Qt(t),t.target,s(t,e.lockRef.current))},[]),f=m.useCallback(function(t){l(t.type,Q(t),t.target,s(t,e.lockRef.current))},[]);m.useEffect(function(){return $.push(a),e.setCallbacks({onScrollCapture:d,onWheelCapture:d,onTouchMoveCapture:f}),document.addEventListener(`wheel`,c,Z),document.addEventListener(`touchmove`,c,Z),document.addEventListener(`touchstart`,u,Z),function(){$=$.filter(function(e){return e!==a}),document.removeEventListener(`wheel`,c,Z),document.removeEventListener(`touchmove`,c,Z),document.removeEventListener(`touchstart`,u,Z)}},[]);var p=e.removeScrollBar,h=e.inert;return m.createElement(m.Fragment,null,h?m.createElement(a,{styles:tn(i)}):null,p?m.createElement(Bt,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function an(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}var on=Ct(wt,rn),sn=m.forwardRef(function(e,t){return m.createElement(K,_({},e,{ref:t,sideCar:on}))});sn.classNames=K.classNames;export{v as _,Qe as a,De as c,A as d,me as f,y as g,ae as h,et as i,Ae as l,de as m,ft as n,ze as o,he as p,nt as r,Fe as s,sn as t,be as u};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{d as r,g as i,l as a,n as o}from"./stats-CnQDb62m.js";import{t as s}from"./currency-CQsJu8iC.js";import{r as c,t as l}from"./source-icon-hm8Cj-Gx.js";import{g as u}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as d}from"./router-provider-5fsX1CYn.js";import{o as f}from"./dist-BBIJuyPg.js";import{An as p,On as m,ar as h,en as g,fr as _,j as v,jn as y,nr as b,pr as x,t as S}from"./button--i2uMDDn.js";import{E as C}from"./_baseAssignValue-C_vooEQc.js";import{$ as w,C as ee,E as T,I as te,J as ne,K as E,P as D,Q as O,S as re,Y as ie,Z as ae,_ as oe,a as se,at as ce,b as le,ct as ue,dt as de,et as fe,g as pe,i as me,it as he,n as ge,nt as _e,ot as k,r as ve,st as A,ut as ye,w as be,x as xe,y as Se}from"./chart-ChpW-NzQ.js";import{n as Ce,t as we}from"./PolarAngleAxis-pciQ0MOy.js";import{a as Te,c as Ee,i as j,l as De,n as M,r as Oe,t as ke,u as Ae}from"./chart-helpers-C_4Ka_vT.js";import{n as je,t as N}from"./sort-button-WOQYJm2H.js";import{i as Me,r as Ne,t as Pe}from"./tabs-dtOcExye.js";import{i as Fe,n as Ie,o as Le,s as Re,t as ze}from"./select-PhPjIBBT.js";import{a as Be,n as Ve,o as He,r as Ue,t as We}from"./card-CSWz_BXq.js";import{t as Ge}from"./empty-indicator-BTtOlgIo.js";import{a as P,c as F,i as Ke,n as I,r as L,s as qe,t as Je}from"./table-C5nZYPnW.js";import{Fn as Ye,Gn as Xe,Hr as R,In as Ze,Kr as z,Ln as Qe,Nn as $e,Pn as et,Qr as tt,Ri as nt,Rn as rt,Un as it,Vn as at,Vr as B,Wr as V,Xr as ot,c as H,d as st,ei as ct,r as lt,ri as ut}from"./index-BacwlcOy.js";import{a as dt}from"./tiers-EghDzCKc.js";import{i as ft,n as pt,r as mt,t as ht}from"./stats-view-CCfTJgSe.js";import{t as gt}from"./disabled-sources-indicator-L_ssJTNr.js";import{t as _t}from"./use-growth-stats-BJORomv0.js";import{n as vt,r as U,t as yt}from"./kpi-tabs-_VRK6hGV.js";import{t as bt}from"./use-analytics-data-0l_OHtnR.js";import{n as xt}from"./audience-adiFehTD.js";import{n as St}from"./referrers-nxR52jPI.js";import{i as Ct,r as wt,t as W}from"./content-helpers-CNBPrwsi.js";import{t as Tt}from"./url-helpers-CCyfRrKj.js";var G=e(t()),Et=e(de()),Dt=e(te()),K=e(ye()),q=e(C()),Ot;function J(e){"@babel/helpers - typeof";return J=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},J(e)}function Y(){return Y=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Y.apply(this,arguments)}function kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function X(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?kt(Object(n),!0).forEach(function(t){Z(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function At(e,t){if(!(e instanceof t))throw TypeError(`Cannot call a class as a function`)}function jt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,`value`in r&&(r.writable=!0),Object.defineProperty(e,Bt(r.key),r)}}function Mt(e,t,n){return t&&jt(e.prototype,t),n&&jt(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}function Nt(e,t,n){return t=Lt(t),Pt(e,It()?Reflect.construct(t,n||[],Lt(e).constructor):t.apply(e,n))}function Pt(e,t){if(t&&(J(t)===`object`||typeof t==`function`))return t;if(t!==void 0)throw TypeError(`Derived constructors may only return object or undefined`);return Ft(e)}function Ft(e){if(e===void 0)throw ReferenceError(`this hasn't been initialised - super() hasn't been called`);return e}function It(){try{var e=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){}))}catch{}return(It=function(){return!!e})()}function Lt(e){return Lt=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},Lt(e)}function Rt(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Super expression must either be null or a function`);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&zt(e,t)}function zt(e,t){return zt=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},zt(e,t)}function Z(e,t,n){return t=Bt(t),t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Bt(e){var t=Vt(e,`string`);return J(t)==`symbol`?t:t+``}function Vt(e,t){if(J(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(J(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var Q=function(e){function t(e){var n;return At(this,t),n=Nt(this,t,[e]),Z(n,`pieRef`,null),Z(n,`sectorRefs`,[]),Z(n,`id`,ue(`recharts-pie-`)),Z(n,`handleAnimationEnd`,function(){var e=n.props.onAnimationEnd;n.setState({isAnimationFinished:!0}),(0,q.default)(e)&&e()}),Z(n,`handleAnimationStart`,function(){var e=n.props.onAnimationStart;n.setState({isAnimationFinished:!1}),(0,q.default)(e)&&e()}),n.state={isAnimationFinished:!e.isAnimationActive,prevIsAnimationActive:e.isAnimationActive,prevAnimationId:e.animationId,sectorToFocus:0},n}return Rt(t,e),Mt(t,[{key:`isActiveIndex`,value:function(e){var t=this.props.activeIndex;return Array.isArray(t)?t.indexOf(e)!==-1:e===t}},{key:`hasActiveIndex`,value:function(){var e=this.props.activeIndex;return Array.isArray(e)?e.length!==0:e||e===0}},{key:`renderLabels`,value:function(e){if(this.props.isAnimationActive&&!this.state.isAnimationFinished)return null;var n=this.props,r=n.label,i=n.labelLine,a=n.dataKey,o=n.valueKey,s=w(this.props,!1),c=w(r,!1),l=w(i,!1),u=r&&r.offsetRadius||20,d=e.map(function(e,n){var d=(e.startAngle+e.endAngle)/2,f=T(e.cx,e.cy,e.outerRadius+u,d),p=X(X(X(X({},s),e),{},{stroke:`none`},c),{},{index:n,textAnchor:t.getTextAnchor(f.x,e.cx)},f),m=X(X(X(X({},s),e),{},{fill:`none`,stroke:e.fill},l),{},{index:n,points:[T(e.cx,e.cy,e.outerRadius,d),f]}),h=a;return(0,K.default)(a)&&(0,K.default)(o)?h=`value`:(0,K.default)(a)&&(h=o),G.createElement(O,{key:`label-${e.startAngle}-${e.endAngle}-${e.midAngle}-${n}`},i&&t.renderLabelLineItem(i,m,`line`),t.renderLabelItem(r,p,D(e,h)))});return G.createElement(O,{className:`recharts-pie-labels`},d)}},{key:`renderSectorsStatically`,value:function(e){var t=this,n=this.props,r=n.activeShape,i=n.blendStroke,a=n.inactiveShape;return e.map(function(n,o){if(n?.startAngle===0&&n?.endAngle===0&&e.length!==1)return null;var s=t.isActiveIndex(o),c=a&&t.hasActiveIndex()?a:null,l=s?r:c,u=X(X({},n),{},{stroke:i?n.fill:n.stroke,tabIndex:-1});return G.createElement(O,Y({ref:function(e){e&&!t.sectorRefs.includes(e)&&t.sectorRefs.push(e)},tabIndex:-1,className:`recharts-pie-sector`},_e(t.props,n,o),{key:`sector-${n?.startAngle}-${n?.endAngle}-${n.midAngle}-${o}`}),G.createElement(oe,Y({option:l,isActive:s,shapeType:`sector`},u)))})}},{key:`renderSectorsWithAnimation`,value:function(){var e=this,t=this.props,n=t.sectors,r=t.isAnimationActive,i=t.animationBegin,a=t.animationDuration,o=t.animationEasing,s=t.animationId,c=this.state,l=c.prevSectors,u=c.prevIsAnimationActive;return G.createElement(Se,{begin:i,duration:a,isActive:r,easing:o,from:{t:0},to:{t:1},key:`pie-${s}-${u}`,onAnimationStart:this.handleAnimationStart,onAnimationEnd:this.handleAnimationEnd},function(t){var r=t.t,i=[],a=(n&&n[0]).startAngle;return n.forEach(function(e,t){var n=l&&l[t],o=t>0?(0,Et.default)(e,`paddingAngle`,0):0;if(n){var s=ce(n.endAngle-n.startAngle,e.endAngle-e.startAngle),c=X(X({},e),{},{startAngle:a+o,endAngle:a+s(r)+o});i.push(c),a=c.endAngle}else{var u=e.endAngle,d=e.startAngle,f=ce(0,u-d)(r),p=X(X({},e),{},{startAngle:a+o,endAngle:a+f+o});i.push(p),a=p.endAngle}}),G.createElement(O,null,e.renderSectorsStatically(i))})}},{key:`attachKeyboardHandlers`,value:function(e){var t=this;e.onkeydown=function(e){if(!e.altKey)switch(e.key){case`ArrowLeft`:var n=++t.state.sectorToFocus%t.sectorRefs.length;t.sectorRefs[n].focus(),t.setState({sectorToFocus:n});break;case`ArrowRight`:var r=--t.state.sectorToFocus<0?t.sectorRefs.length-1:t.state.sectorToFocus%t.sectorRefs.length;t.sectorRefs[r].focus(),t.setState({sectorToFocus:r});break;case`Escape`:t.sectorRefs[t.state.sectorToFocus].blur(),t.setState({sectorToFocus:0});break;default:}}}},{key:`renderSectors`,value:function(){var e=this.props,t=e.sectors,n=e.isAnimationActive,r=this.state.prevSectors;return n&&t&&t.length&&(!r||!(0,Dt.default)(r,t))?this.renderSectorsWithAnimation():this.renderSectorsStatically(t)}},{key:`componentDidMount`,value:function(){this.pieRef&&this.attachKeyboardHandlers(this.pieRef)}},{key:`render`,value:function(){var e=this,t=this.props,n=t.hide,r=t.sectors,i=t.className,a=t.label,o=t.cx,s=t.cy,c=t.innerRadius,l=t.outerRadius,u=t.isAnimationActive,d=this.state.isAnimationFinished;if(n||!r||!r.length||!k(o)||!k(s)||!k(c)||!k(l))return null;var p=f(`recharts-pie`,i);return G.createElement(O,{tabIndex:this.props.rootTabIndex,className:p,ref:function(t){e.pieRef=t}},this.renderSectors(),a&&this.renderLabels(r),re.renderCallByParent(this.props,null,!1),(!u||d)&&xe.renderCallByParent(this.props,r,!1))}}],[{key:`getDerivedStateFromProps`,value:function(e,t){return t.prevIsAnimationActive===e.isAnimationActive?e.isAnimationActive&&e.animationId!==t.prevAnimationId?{prevAnimationId:e.animationId,curSectors:e.sectors,prevSectors:t.curSectors,isAnimationFinished:!0}:e.sectors===t.curSectors?null:{curSectors:e.sectors,isAnimationFinished:!0}:{prevIsAnimationActive:e.isAnimationActive,prevAnimationId:e.animationId,curSectors:e.sectors,prevSectors:[],isAnimationFinished:!0}}},{key:`getTextAnchor`,value:function(e,t){return e>t?`start`:e<t?`end`:`middle`}},{key:`renderLabelLineItem`,value:function(e,t,n){if(G.isValidElement(e))return G.cloneElement(e,t);if((0,q.default)(e))return e(t);var r=f(`recharts-pie-label-line`,typeof e==`boolean`?``:e.className);return G.createElement(le,Y({},t,{key:n,type:`linear`,className:r}))}},{key:`renderLabelItem`,value:function(e,t,n){if(G.isValidElement(e))return G.cloneElement(e,t);var r=n;if((0,q.default)(e)&&(r=e(t),G.isValidElement(r)))return r;var i=f(`recharts-pie-label-text`,typeof e!=`boolean`&&!(0,q.default)(e)?e.className:``);return G.createElement(E,Y({},t,{alignmentBaseline:`middle`,className:i}),r)}}])}(G.PureComponent);Ot=Q,Z(Q,`displayName`,`Pie`),Z(Q,`defaultProps`,{stroke:`#fff`,fill:`#808080`,legendType:`rect`,cx:`50%`,cy:`50%`,startAngle:0,endAngle:360,innerRadius:0,outerRadius:`80%`,paddingAngle:0,labelLine:!0,hide:!1,minAngle:0,isAnimationActive:!ie.isSsr,animationBegin:400,animationDuration:1500,animationEasing:`ease`,nameKey:`name`,blendStroke:!1,rootTabIndex:0}),Z(Q,`parseDeltaAngle`,function(e,t){return A(t-e)*Math.min(Math.abs(t-e),360)}),Z(Q,`getRealPieData`,function(e){var t=e.data,n=e.children,r=w(e,!1),i=fe(n,ne);return t&&t.length?t.map(function(e,t){return X(X(X({payload:e},r),e),i&&i[t]&&i[t].props)}):i&&i.length?i.map(function(e){return X(X({},r),e.props)}):[]}),Z(Q,`parseCoordinateOfPie`,function(e,t){var n=t.top,r=t.left,i=t.width,a=t.height,o=be(i,a);return{cx:r+he(e.cx,i,i/2),cy:n+he(e.cy,a,a/2),innerRadius:he(e.innerRadius,o,0),outerRadius:he(e.outerRadius,o,o*.8),maxRadius:e.maxRadius||Math.sqrt(i*i+a*a)/2}}),Z(Q,`getComposedData`,function(e){var t=e.item,n=e.offset,r=t.type.defaultProps===void 0?t.props:X(X({},t.type.defaultProps),t.props),i=Ot.getRealPieData(r);if(!i||!i.length)return null;var a=r.cornerRadius,o=r.startAngle,s=r.endAngle,c=r.paddingAngle,l=r.dataKey,u=r.nameKey,d=r.valueKey,f=r.tooltipType,p=Math.abs(r.minAngle),m=Ot.parseCoordinateOfPie(r,n),h=Ot.parseDeltaAngle(o,s),g=Math.abs(h),_=l;(0,K.default)(l)&&(0,K.default)(d)?(ae(!1,`Use "dataKey" to specify the value of pie,
|
|
2
|
-
the props "valueKey" will be deprecated in 1.1.0`),_=`value`):(0,K.default)(l)&&(ae(!1,`Use "dataKey" to specify the value of pie,
|
|
3
|
-
the props "valueKey" will be deprecated in 1.1.0`),_=d);var v=i.filter(function(e){return D(e,_,0)!==0}).length,y=(g>=360?v:v-1)*c,b=g-v*p-y,x=i.reduce(function(e,t){var n=D(t,_,0);return e+(k(n)?n:0)},0),S;if(x>0){var C;S=i.map(function(e,t){var n=D(e,_,0),r=D(e,u,t),i=(k(n)?n:0)/x,s=t?C.endAngle+A(h)*c*(n===0?0:1):o,l=s+A(h)*((n===0?0:p)+i*b),d=(s+l)/2,g=(m.innerRadius+m.outerRadius)/2;return C=X(X(X({percent:i,cornerRadius:a,name:r,tooltipPayload:[{name:r,value:n,payload:e,dataKey:_,type:f}],midAngle:d,middleRadius:g,tooltipPosition:T(m.cx,m.cy,g,d)},e),m),{},{value:D(e,_),startAngle:s,endAngle:l,payload:e,paddingAngle:A(h)*c}),C})}return X(X({},m),{},{sectors:S,data:i})});var Ht=se({chartName:`PieChart`,GraphicalChild:Q,validateTooltipEventTypes:[`item`],defaultTooltipEventType:`item`,legendContent:`children`,axisComponents:[{axisType:`angleAxis`,AxisComp:we},{axisType:`radiusAxis`,AxisComp:Ce}],formatAxisMap:ee,defaultProps:{layout:`centric`,startAngle:0,endAngle:360,cx:`50%`,cy:`50%`,innerRadius:0,outerRadius:`80%`}}),$=n(),Ut=e=>e===`total-members`||e===`free-members`||e===`paid-members`||e===`mrr`,Wt=({active:e,payload:t,range:n,color:r,showBreakdown:i})=>{if(!e||!t?.length)return null;let a=t[0].payload,{date:o,formattedValue:s,label:c,comped:l,gift:u}=a,d=a.value-(l||0)-(u||0);return(0,$.jsxs)(`div`,{className:`min-w-[200px] rounded-lg border bg-background px-3 py-2 shadow-lg`,children:[o&&(0,$.jsx)(`div`,{className:`mb-1 text-sm text-foreground`,children:R(o,n||0)}),(0,$.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[i&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Paid subscriptions`}),(0,$.jsx)(`div`,{className:`font-mono text-xs`,children:h(d)})]})}),(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Gift subscriptions`}),(0,$.jsx)(`div`,{className:`font-mono text-xs`,children:u!==void 0&&u>0?h(u):`0`})]})}),(0,$.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:`Complimentary`}),(0,$.jsx)(`div`,{className:`font-mono text-xs`,children:l!==void 0&&l>0?h(l):`0`})]})}),(0,$.jsx)(Xe,{})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`inline-block size-2 rounded-full opacity-50`,style:{backgroundColor:r||`var(--chart-purple)`}}),(0,$.jsxs)(`div`,{className:`flex grow items-center justify-between gap-5`,children:[c&&(0,$.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:c}),(0,$.jsx)(`div`,{className:`font-mono font-medium`,children:s})]})]})]})]})},Gt=({chartData:e,totals:t,initialTab:n,currencySymbol:r,isLoading:i,onTabChange:a})=>{let o=Ut(n)?n:`total-members`,[s,c]=(0,G.useState)(o),{range:l}=st(),{appSettings:f}=nt(),p=d(),[m]=u();(0,G.useEffect)(()=>{c(o)},[o]);let g=e=>{c(e);let t=new URLSearchParams(m);t.set(`tab`,e),p(`?${t.toString()}`,{replace:!0}),a&&a(e)},{totalMembers:_,freeMembers:v,paidMembers:y,mrr:b,percentChanges:x,directions:S}=t,{chartData:C,chartRange:w}=(0,G.useMemo)(()=>{if(!e||e.length===0)return{chartData:[],chartRange:l};let t=[],n=`value`;switch(s){case`free-members`:n=`free`;break;case`paid-members`:n=`paid`;break;case`mrr`:n=`mrr`;break;default:n=`value`}t=j(e,l,n,`exact`);let i=[];switch(s){case`free-members`:i=t.map(e=>({...e,value:e.free,formattedValue:h(e.free),label:`Free members`}));break;case`paid-members`:i=t.map(e=>({...e,value:e.paid,formattedValue:h(e.paid),label:`Paid members`,comped:e.comped,gift:e.gift,paid_subscribed:e.paid_subscribed}));break;case`mrr`:i=t.map(e=>({...e,value:B(e.mrr),formattedValue:`${r}${h(B(e.mrr))}`,label:`MRR`}));break;default:i=t.map(e=>{let t=e.free+e.paid;return{...e,value:t,formattedValue:h(t),label:`Total members`}})}return{chartData:i,chartRange:ke(l,e,{fieldName:n})}},[s,e,l,r]),ee={"total-members":{color:`var(--chart-darkblue)`},"free-members":{color:`var(--chart-blue)`},"paid-members":{color:`var(--chart-purple)`},mrr:{color:`var(--chart-teal)`}};return i?(0,$.jsx)(`div`,{className:`-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center`,children:(0,$.jsx)(at,{})}):(0,$.jsxs)(Pe,{defaultValue:o,variant:`kpis`,children:[(0,$.jsxs)(Ne,{className:`-mx-6 ${f?.paidMembersEnabled?`hidden grid-cols-4 lg:visible! lg:grid!`:`grid grid-cols-4`}`,children:[(0,$.jsx)(vt,{className:f?.paidMembersEnabled?``:`cursor-auto after:hidden`,value:`total-members`,onClick:()=>{f?.paidMembersEnabled&&g(`total-members`)},children:(0,$.jsx)(U,{color:`var(--chart-darkblue)`,diffDirection:l===H.allTime.value?`hidden`:S.total,diffValue:x.total,label:`Total members`,value:h(_)})}),f?.paidMembersEnabled&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(vt,{value:`free-members`,onClick:()=>{g(`free-members`)},children:(0,$.jsx)(U,{color:`var(--chart-blue)`,diffDirection:l===H.allTime.value?`hidden`:S.free,diffValue:x.free,label:`Free members`,value:h(v)})}),(0,$.jsx)(vt,{value:`paid-members`,onClick:()=>{g(`paid-members`)},children:(0,$.jsx)(U,{color:`var(--chart-purple)`,diffDirection:l===H.allTime.value?`hidden`:S.paid,diffValue:x.paid,label:`Paid members`,value:h(y)})}),(0,$.jsx)(vt,{value:`mrr`,onClick:()=>{g(`mrr`)},children:(0,$.jsx)(U,{color:`var(--chart-teal)`,diffDirection:l===H.allTime.value?`hidden`:S.mrr,diffValue:x.mrr,label:`MRR`,value:`${r}${h(B(b))}`})})]})]}),f?.paidMembersEnabled&&(0,$.jsxs)(ot,{children:[(0,$.jsx)(ut,{className:`lg:hidden`,asChild:!0,children:(0,$.jsxs)(yt,{children:[s===`total-members`&&(0,$.jsx)(U,{color:`var(--chart-darkblue)`,diffDirection:l===H.allTime.value?`hidden`:S.total,diffValue:x.total,label:`Total members`,value:h(_)}),s===`free-members`&&(0,$.jsx)(U,{color:`var(--chart-blue)`,diffDirection:l===H.allTime.value?`hidden`:S.free,diffValue:x.free,label:`Free members`,value:h(v)}),s===`paid-members`&&(0,$.jsx)(U,{color:`var(--chart-purple)`,diffDirection:l===H.allTime.value?`hidden`:S.paid,diffValue:x.paid,label:`Paid members`,value:h(y)}),s===`mrr`&&(0,$.jsx)(U,{color:`var(--chart-teal)`,diffDirection:l===H.allTime.value?`hidden`:S.mrr,diffValue:x.mrr,label:`MRR`,value:`${r}${h(B(b))}`})]})}),(0,$.jsxs)(tt,{align:`end`,className:`w-56`,children:[(0,$.jsx)(ct,{onClick:()=>g(`total-members`),children:`Total members`}),(0,$.jsx)(ct,{onClick:()=>g(`free-members`),children:`Free members`}),(0,$.jsx)(ct,{onClick:()=>g(`paid-members`),children:`Paid members`}),(0,$.jsx)(ct,{onClick:()=>g(`mrr`),children:`MRR`})]})]}),(0,$.jsx)(`div`,{className:`my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500`,children:(0,$.jsx)(Te,{className:`-mb-3 h-[16vw] max-h-[320px] w-full min-h-[180px]`,color:ee[s].color,data:C,dataFormatter:s===`mrr`?e=>`${r}${h(e)}`:h,id:s,range:w,tooltipContent:s===`paid-members`?(0,$.jsx)(Wt,{color:ee[`paid-members`].color,range:w,showBreakdown:!0}):void 0})})]})},Kt=(e,t=`signups desc`,n=50)=>{let{startDate:r,endDate:i,timezone:a}=z(e),o={date_from:V(r),date_to:V(i),member_status:xt(lt),order:t,limit:n.toString()};return a&&(o.timezone=a),St({searchParams:o})},qt=({data:e,currencySymbol:t,limit:n,defaultSourceIconUrl:r})=>{let i=n?e.slice(0,n):e,{appSettings:a}=nt();return(0,$.jsx)(I,{children:i.map(e=>(0,$.jsxs)(F,{className:`last:border-none`,children:[(0,$.jsx)(L,{className:`font-medium`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(l,{defaultSourceIconUrl:r,displayName:e.displayName,iconSrc:e.iconSrc}),e.linkUrl?(0,$.jsx)(`a`,{className:`hover:underline`,href:e.linkUrl,rel:`noreferrer`,target:`_blank`,children:e.displayName}):(0,$.jsx)(`span`,{children:e.displayName})]})}),(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[`+`,h(e.free_members)]}),a?.paidMembersEnabled&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[`+`,h(e.paid_members)]}),(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[`+`,t,h(B(e.mrr))]})]})]},e.source))})},Jt=({range:e,limit:t=20,showViewAll:n=!1,sortBy:r,setSortBy:i})=>{let{site:a}=bt(),{data:l}=o(),{appSettings:u}=nt(),[d,f]=(0,G.useState)(`free_members desc`),p=r||d,m=i||f,{data:h,isLoading:_}=Kt(e,p.replace(`free_members`,`signups`).replace(`paid_members`,`paid_conversions`),t),y=a.url,b=`https://www.google.com/s2/favicons?domain=ghost.org&sz=64`,x=G.useMemo(()=>{if(l?.stats&&l?.meta?.totals){let e=l.meta.totals,t=e[0];if(!t)return s(`usd`);for(let n of e)n.mrr>t.mrr&&(t=n);return s(t.currency)}return s(`usd`)},[l]),C=G.useMemo(()=>h?.stats?h.stats.map(e=>{let t=e.source||`Direct`,{domain:n}=c(t,y),r=n?`https://www.faviconextractor.com/favicon/${n}?larger=true`:b,i=n&&t!==`Direct`?`https://${n}`:void 0;return{source:t,free_members:e.signups,paid_members:e.paid_conversions,mrr:e.mrr,iconSrc:r,displayName:t,linkUrl:i}}):[],[h,y]),w=`Where did your growth come from ${M(e)}`;return u?.analytics.membersTrackSources?_?(0,$.jsx)(I,{children:(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-2`,colSpan:1,children:(0,$.jsx)(it,{containerClassName:`space-y-2`,count:5,maxWidth:75,randomize:!0})})})}):(0,$.jsxs)($.Fragment,{children:[C.length>0?(0,$.jsx)(qt,{currencySymbol:x,data:C,defaultSourceIconUrl:b,limit:t}):(0,$.jsx)(I,{children:(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-12 group-hover:bg-transparent!`,colSpan:u?.paidMembersEnabled?4:2,children:(0,$.jsx)(Ge,{description:`Try adjusting your date range to see more data.`,title:`No conversions ${M(e)}`,children:(0,$.jsx)(g,{strokeWidth:1.5})})})})}),n&&C.length>t&&(0,$.jsx)(Ke,{className:`border-none bg-transparent hover:bg-transparent!`,children:(0,$.jsx)(F,{children:(0,$.jsx)(L,{className:`border-none bg-transparent px-0 pb-0 hover:bg-transparent!`,colSpan:4,children:(0,$.jsxs)($e,{children:[(0,$.jsx)(rt,{asChild:!0,children:(0,$.jsxs)(S,{variant:`outline`,children:[`View all `,(0,$.jsx)(v,{})]})}),(0,$.jsxs)(et,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,$.jsxs)(Ze,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,$.jsx)(Qe,{children:`Top sources`}),(0,$.jsx)(Ye,{children:w})]}),(0,$.jsx)(`div`,{className:`group/datalist`,children:(0,$.jsxs)(Je,{children:[(0,$.jsx)(qe,{children:(0,$.jsxs)(F,{children:[(0,$.jsx)(P,{children:`Source`}),(0,$.jsx)(P,{className:`w-[110px] text-right`,children:(0,$.jsx)(N,{activeSortBy:p,setSortBy:m,sortBy:`free_members desc`,children:`Free members`})}),u?.paidMembersEnabled&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(P,{className:`w-[110px] text-right`,children:(0,$.jsx)(N,{activeSortBy:p,setSortBy:m,sortBy:`paid_members desc`,children:`Paid members`})}),(0,$.jsx)(P,{className:`w-[110px] text-right`,children:(0,$.jsx)(N,{activeSortBy:p,setSortBy:m,sortBy:`mrr desc`,children:`MRR impact`})})]})]})}),(0,$.jsx)(qt,{currencySymbol:x,data:C,defaultSourceIconUrl:b})]})})]})]})})})})]}):(0,$.jsx)(I,{children:(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-12 group-hover:bg-transparent!`,colSpan:u?.paidMembersEnabled?4:2,children:(0,$.jsx)(gt,{})})})})};x();var Yt=({active:e,payload:t})=>{if(e&&t&&t.length){let e=t[0];return(0,$.jsx)(`div`,{className:`rounded-lg border bg-background p-2 shadow-sm`,children:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`div`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:e.payload.color}}),(0,$.jsx)(`span`,{className:`font-medium`,children:e.name}),(0,$.jsx)(`span`,{className:`font-mono`,children:h(e.value)})]})})}return null},Xt=({isLoading:e,range:t})=>{let{data:n}=a(),{data:{tiers:r=[]}={}}=dt(),[i,o]=(0,G.useState)(`billing-period`),{startDate:s,endDate:c}=(0,G.useMemo)(()=>z(t),[t]),l=(0,G.useMemo)(()=>V(s),[s]),u=(0,G.useMemo)(()=>V(c),[c]),d=(0,G.useMemo)(()=>r.filter(e=>e.type===`paid`&&e.active).map(e=>({id:e.id,name:e.name})),[r]),f=(0,G.useMemo)(()=>{if(!n?.stats)return[];let e=_(l),t=_(u),r=n.stats.filter(n=>{let r=_(n.date);return r.isSameOrAfter(e)&&r.isSameOrBefore(t)}).reduce((e,t)=>{let n=t.cadence;return e[n]||(e[n]=0),e[n]+=t.signups,e},{});return Object.entries(r).map(([e,t],n)=>{let r=e,i=`url(#gradientPurple)`,a=`var(--chart-purple)`;return e===`month`?(r=`Monthly`,i=`url(#gradientPurple)`,a=`var(--chart-purple)`):e===`year`&&(r=`Annual`,i=`url(#gradientTeal)`,a=`var(--chart-teal)`),{id:`cadence-${n}`,name:r,count:t,fill:i,color:a}})},[n,l,u]),p=(0,G.useMemo)(()=>{if(!n?.stats||d.length===0)return[];let e=_(l),t=_(u),r=n.stats.filter(n=>{let r=_(n.date);return r.isSameOrAfter(e)&&r.isSameOrBefore(t)}).reduce((e,t)=>{let n=t.tier;return e[n]||(e[n]=0),e[n]+=t.signups,e},{}),i=[{gradient:`url(#gradientPurple)`,solid:`var(--chart-purple)`},{gradient:`url(#gradientTeal)`,solid:`var(--chart-teal)`},{gradient:`url(#gradientBlue)`,solid:`var(--chart-blue)`},{gradient:`url(#gradientRose)`,solid:`var(--chart-rose)`},{gradient:`url(#gradientOrange)`,solid:`var(--chart-orange)`},{gradient:`url(#gradientGreen)`,solid:`var(--chart-green)`},{gradient:`url(#gradientAmber)`,solid:`var(--chart-amber)`},{gradient:`url(#gradientYellow)`,solid:`var(--chart-yellow)`},{gradient:`url(#gradientDarkblue)`,solid:`var(--chart-darkblue)`},{gradient:`url(#gradientGray)`,solid:`var(--chart-darkgray)`}];return[...d.map(e=>{let t=r[e.id]||0;return{id:e.id,name:e.name,count:t}})].sort((e,t)=>t.count-e.count).map((e,t)=>{let n=t%i.length;return{...e,fill:i[n].gradient,color:i[n].solid}})},[n,d,l,u]),g=i===`billing-period`?f:p,v=(0,G.useMemo)(()=>g.reduce((e,t)=>e+t.count,0),[g]),y=(0,G.useMemo)(()=>{let e={count:{label:`Subscriptions`}};return g.forEach(t=>{e[t.id]={label:t.name,color:t.color}}),e},[g]),b=(0,G.useMemo)(()=>v===0?[]:g.map(e=>({label:e.name,count:e.count,percentage:e.count/v*100,color:e.color})),[g,v]);if(e||!n?.stats)return null;let x=g.length>0&&v>0;return(0,$.jsxs)(We,{children:[(0,$.jsx)(Be,{children:(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-1.5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsx)(He,{children:`Paid subscription breakdown`}),(0,$.jsxs)(Ue,{children:[`New paid subscriptions `,M(t)]})]}),d.length>1&&(0,$.jsx)(`div`,{children:(0,$.jsxs)(ze,{value:i,onValueChange:e=>o(e),children:[(0,$.jsx)(Le,{className:`w-full`,children:(0,$.jsx)(Re,{})}),(0,$.jsxs)(Ie,{align:`end`,children:[(0,$.jsx)(Fe,{value:`billing-period`,children:`Billing period`}),(0,$.jsx)(Fe,{value:`tiers`,children:`Tiers`})]})]})})]})}),(0,$.jsx)(Ve,{children:x?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ge,{className:`mx-auto aspect-square h-[250px] min-h-[250px] w-full`,config:y,children:(0,$.jsxs)(Ht,{children:[(0,$.jsxs)(`defs`,{children:[(0,$.jsxs)(`linearGradient`,{id:`gradientPurple`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-purple)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-purple)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientTeal`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-teal)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-teal)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientRose`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-rose)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-rose)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientBlue`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-blue)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-blue)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientOrange`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-orange)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-orange)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientGreen`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-green)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-green)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientAmber`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-amber)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-amber)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientYellow`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-yellow)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-yellow)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientDarkblue`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-darkblue)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-darkblue)`,stopOpacity:.6})]}),(0,$.jsxs)(`linearGradient`,{id:`gradientGray`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--chart-darkgray)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--chart-darkgray)`,stopOpacity:.6})]})]}),(0,$.jsx)(ve,{content:(0,$.jsx)(Yt,{}),cursor:!1}),(0,$.jsx)(Q,{animationBegin:0,animationDuration:1e3,data:g,dataKey:`count`,innerRadius:70,nameKey:`name`,stroke:`var(--card)`,strokeWidth:5,children:(0,$.jsx)(re,{content:({viewBox:e})=>{if(e&&`cx`in e&&`cy`in e)return(0,$.jsxs)(`text`,{dominantBaseline:`middle`,textAnchor:`middle`,x:e.cx,y:e.cy,children:[(0,$.jsx)(`tspan`,{className:`fill-foreground text-2xl font-semibold tracking-tight`,x:e.cx,y:e.cy,children:h(v)}),(0,$.jsx)(`tspan`,{className:`fill-muted-foreground`,x:e.cx,y:(e.cy||0)+20,children:`Total`})]})}})})]})}),b.length>0&&(0,$.jsx)(`div`,{className:`mt-4 flex flex-wrap items-center justify-center gap-x-6 gap-y-1 text-sm text-muted-foreground`,children:b.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:e.color}}),(0,$.jsx)(`span`,{className:`max-w-[150px] truncate whitespace-nowrap`,title:e.label,children:e.label}),(0,$.jsxs)(`span`,{className:`font-medium text-foreground`,children:[Math.round(Number(e.percentage)||0),`%`]})]},e.label))})]}):(0,$.jsx)(`div`,{className:`py-12`,children:(0,$.jsx)(Ge,{description:`No new paid subscriptions ${M(t)}.`,title:`No new subscribers`,children:(0,$.jsx)(m,{strokeWidth:1.5})})})})]})};x();var Zt=(e,t,n)=>{if(t===1){let t=_().format(`YYYY-MM-DD`),n=e.find(e=>e.date===t);return[{date:t,signups:n?.signups||0,cancellations:n?.cancellations||0}]}let{startDate:r,endDate:i}=z(t),a=_(r).format(`YYYY-MM-DD`),o=new Map(e.map(e=>[e.date,e])),s=[],c=new Set;if(n===`monthly`){let e=_(r).startOf(`month`),t=_(i).startOf(`month`);for(;e.isSameOrBefore(t);){let t=e.format(`YYYY-MM-DD`),n=t<a?a:t;if(!c.has(n)){c.add(n);let e=o.get(n);e?s.push(e):s.push({date:n,signups:0,cancellations:0})}e.add(1,`month`)}}else if(n===`weekly`){let e=_(r).startOf(`week`),t=_(i).startOf(`week`);for(;e.isSameOrBefore(t);){let t=e.format(`YYYY-MM-DD`),n=t<a?a:t;if(!c.has(n)){c.add(n);let e=o.get(n);e?s.push(e):s.push({date:n,signups:0,cancellations:0})}e.add(1,`week`)}}else{let e=_(r),t=_(i);for(;e.isSameOrBefore(t);){let t=e.format(`YYYY-MM-DD`),n=o.get(t);n?s.push(n):s.push({date:t,signups:0,cancellations:0}),e.add(1,`day`)}}return s},Qt=e=>{let t=Oe(e);return t<30?[`daily`]:t>=91?[`weekly`,`monthly`]:[`daily`,`weekly`]},$t=e=>{let t=Oe(e);return t<30?`daily`:t>=91?`monthly`:`weekly`},en=({subscriptionData:e,memberData:t,range:n,isLoading:r})=>{let[i,a]=(0,G.useState)(()=>$t(n));(0,G.useEffect)(()=>{a($t(n))},[n]);let o=(0,G.useMemo)(()=>Qt(n),[n]),s=(0,G.useMemo)(()=>{switch(i){case`daily`:return`none`;case`weekly`:return`weekly`;case`monthly`:return`monthly`}},[i]),c=(0,G.useMemo)(()=>ke(n,[],{overrideStrategy:s}),[n,s]),l=(0,G.useMemo)(()=>{if(e&&e.length>0){if(n===1){let t=_().format(`YYYY-MM-DD`),r=e.find(e=>e.date===t);return[{date:R(t,n),rawDate:t,new:r?.signups||0,cancelled:-(r?.cancellations||0)}]}let t=j(e,n,`signups`,`sum`,s),r=j(e,n,`cancellations`,`sum`,s),i=new Map(r.map(e=>[e.date,e])),a=t.map(e=>({date:e.date,signups:e.signups||0,cancellations:i.get(e.date)?.cancellations||0})),o=new Set(a.map(e=>e.date));return r.forEach(e=>{o.has(e.date)||a.push({date:e.date,signups:0,cancellations:e.cancellations||0})}),a.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),Zt(a,n,s).map(e=>({date:R(e.date,c),rawDate:e.date,new:e.signups||0,cancelled:-(e.cancellations||0)}))}else{if(!t||t.length===0)return[];if(n===1){let e=_().format(`YYYY-MM-DD`),r=t.find(t=>t.date===e);return[{date:R(e,n),rawDate:e,new:r?.paid_subscribed||0,cancelled:-(r?.paid_canceled||0)}]}let e=j(t,n,`paid_subscribed`,`sum`,s),r=j(t,n,`paid_canceled`,`sum`,s),i=new Map(r.map(e=>[e.date,e])),a=e.map(e=>({date:e.date,paid_subscribed:e.paid_subscribed||0,paid_canceled:i.get(e.date)?.paid_canceled||0})),o=new Set(a.map(e=>e.date));return r.forEach(e=>{o.has(e.date)||a.push({date:e.date,paid_subscribed:0,paid_canceled:e.paid_canceled||0})}),a.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),a.map(e=>({date:R(e.date,c),rawDate:e.date,new:e.paid_subscribed||0,cancelled:-(e.paid_canceled||0)}))}},[t,e,n,s,c]),u={new:{label:`New`,color:`var(--chart-teal)`},cancelled:{label:`Cancelled`,color:`var(--chart-rose)`}},d=(0,G.useMemo)(()=>({new:l.reduce((e,t)=>e+t.new,0),cancelled:l.reduce((e,t)=>e+Math.abs(t.cancelled),0)}),[l]);if(r)return null;let f=l.length>0&&(d.new>0||d.cancelled>0),m=e=>e.charAt(0).toUpperCase()+e.slice(1);return(0,$.jsxs)(We,{"data-testid":`paid-members-change-card`,children:[(0,$.jsx)(Be,{children:(0,$.jsxs)(`div`,{className:`flex items-start justify-between gap-1.5`,children:[(0,$.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,$.jsx)(He,{children:`Paid subscriptions`}),(0,$.jsxs)(Ue,{children:[`New and cancelled paid subscriptions `,M(n)]})]}),o.length>1&&(0,$.jsx)(`div`,{children:(0,$.jsxs)(ze,{value:i,onValueChange:e=>a(e),children:[(0,$.jsx)(Le,{className:`w-[110px]`,children:(0,$.jsx)(Re,{})}),(0,$.jsx)(Ie,{align:`end`,children:o.map(e=>(0,$.jsx)(Fe,{value:e,children:m(e)},e))})]})})]})}),(0,$.jsx)(Ve,{children:f?(0,$.jsxs)(`div`,{children:[(0,$.jsx)(ge,{className:`aspect-auto h-[200px] w-full md:h-[220px] xl:h-[260px]`,config:u,children:(0,$.jsxs)(je,{data:l,stackOffset:`sign`,children:[(0,$.jsx)(`defs`,{children:(0,$.jsxs)(`linearGradient`,{id:`tealGradient`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--color-new)`,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--color-new)`,stopOpacity:.6})]})}),(0,$.jsx)(`defs`,{children:(0,$.jsxs)(`linearGradient`,{id:`roseGradient`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:`var(--color-cancelled)`,stopOpacity:.6}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:`var(--color-cancelled)`,stopOpacity:.8})]})}),(0,$.jsx)(Ae,{stroke:`var(--border)`,vertical:!1}),(0,$.jsx)(De,{axisLine:!1,dataKey:`date`,tickFormatter:()=>``,tickLine:!1,tickMargin:10}),(0,$.jsx)(Ee,{axisLine:!1,tickFormatter:e=>h(e<0?e*-1:e),tickLine:!1}),(0,$.jsx)(ve,{content:(0,$.jsx)(me,{className:`min-w-[120px]! px-3 py-2`,formatter:(e,t,n,r)=>{let i=Number(e),a=`0`;a=i===0?`0`:h(i<0?i*-1:i);let o=n?.payload,s=Number(o?.new||0)+Number(o?.cancelled||0),l=s===0?`0`:s>0?`+${h(s)}`:h(s),d=o?.date,f=o?.rawDate;return f&&(d=R(f,c)),(0,$.jsxs)(`div`,{className:`flex w-full flex-col`,children:[r===0&&(0,$.jsx)(`div`,{className:`mb-1 text-sm font-medium text-foreground`,children:d}),(0,$.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-4`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,$.jsx)(`div`,{className:`size-2 shrink-0 rounded-full bg-[var(--color-bg)] opacity-50`,style:{"--color-bg":`var(--color-${t})`}}),(0,$.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:u[t]?.label||t})]}),(0,$.jsx)(`div`,{className:`ml-auto flex items-baseline gap-0.5 font-mono font-medium text-foreground tabular-nums`,children:a})]}),r===1&&(0,$.jsxs)(`div`,{className:`mt-1 flex w-full items-center justify-between gap-4 border-t pt-1`,children:[(0,$.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`Net change`}),(0,$.jsx)(`div`,{className:`ml-auto flex items-baseline gap-0.5 font-mono font-medium text-foreground tabular-nums`,children:l})]})]})},hideLabel:!0}),cursor:!1,isAnimationActive:!1,position:{y:10}}),(0,$.jsx)(pe,{activeBar:{fillOpacity:1},dataKey:`new`,fill:`url(#tealGradient)`,fillOpacity:.75,maxBarSize:32,minPointSize:3,radius:[4,4,0,0],stackId:`a`}),(0,$.jsx)(pe,{activeBar:{fillOpacity:1},dataKey:`cancelled`,fill:`url(#roseGradient)`,fillOpacity:.75,maxBarSize:32,radius:[4,4,0,0],stackId:`a`})]})}),(0,$.jsxs)(`div`,{className:`mt-3 flex items-center justify-center gap-6 text-sm text-muted-foreground`,children:[(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:u.new.color}}),(0,$.jsx)(`span`,{children:`New`}),(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:h(d.new)})]}),(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsx)(`span`,{className:`size-2 rounded-full opacity-50`,style:{backgroundColor:u.cancelled.color}}),(0,$.jsx)(`span`,{children:`Cancelled`}),(0,$.jsx)(`span`,{className:`font-medium text-foreground`,children:h(d.cancelled)})]})]})]}):(0,$.jsx)(`div`,{className:`py-12`,children:(0,$.jsx)(Ge,{description:`No paid subscription changes ${M(n)}.`,title:`No paid member changes`,children:(0,$.jsx)(p,{strokeWidth:1.5})})})})]})},tn=(e,t,n)=>{let i=e??30,a=t??`mrr desc`,{startDate:o,endDate:s}=(0,G.useMemo)(()=>z(i),[i]),c=(0,G.useMemo)(()=>{let e={date_from:V(o),date_to:V(s),order:a};return n===`posts`?e.post_type=`post`:n===`pages`&&(e.post_type=`page`),e},[o,s,a,n]);return r({searchParams:Object.fromEntries(Object.entries(c).filter(([,e])=>e!==void 0))})},nn=()=>{let{range:e}=st(),{site:t,settings:n}=bt(),r=String(n.find(e=>e.key===`timezone`)?.value||`Etc/UTC`),a=d(),[o,s]=(0,G.useState)(`free_members desc`),[c,l]=(0,G.useState)(W.POSTS_AND_PAGES),[f]=u(),{appSettings:p}=nt(),m=f.get(`tab`)||`total-members`,[g,_]=(0,G.useState)(m);(0,G.useEffect)(()=>{m!==g&&_(m)},[m]);let{isLoading:v,chartData:x,totals:C,currencySymbol:w,subscriptionData:ee}=_t(e),{data:T,isLoading:te}=tn(e,o,c),ne=(0,G.useMemo)(()=>{let e=(T?.stats||[]).reduce((e,t)=>{let n=t.post_id||(t.title&&t.title.trim()!==``?t.title:t.attribution_url);if(!n)return e;if(!e.has(n))e.set(n,t);else{let r=e.get(n);r.free_members+=t.free_members,r.paid_members+=t.paid_members,r.mrr+=t.mrr,e.set(n,r)}return e},new Map),t=Array.from(e.values()),n=t.reduce((e,t)=>e+t.free_members,0),r=t.reduce((e,t)=>e+t.paid_members,0),i=t.reduce((e,t)=>e+t.mrr,0);return t.map(e=>{let t=0;return o.includes(`free_members`)&&n>0?t=e.free_members/n:o.includes(`paid_members`)&&r>0?t=e.paid_members/r:o.includes(`mrr`)&&i>0&&(t=e.mrr/i),{title:e.title||e.attribution_url,post_id:e.post_id,attribution_url:e.attribution_url,attribution_type:e.attribution_type,attribution_id:e.attribution_id,free_members:e.free_members,paid_members:e.paid_members,mrr:e.mrr,percentage:t,published_at:e.published_at,url_exists:e.url_exists??!0}})},[T,o]),E=v,D=v||te;return(0,$.jsxs)(pt,{children:[(0,$.jsx)(mt,{children:(0,$.jsx)(i,{children:(0,$.jsx)(ft,{})})}),(0,$.jsxs)(ht,{data:E?void 0:x,isLoading:!1,loadingComponent:(0,$.jsx)($.Fragment,{}),children:[(0,$.jsx)(We,{"data-testid":`total-members-card`,children:(0,$.jsx)(Ve,{children:(0,$.jsx)(Gt,{chartData:x,currencySymbol:w,initialTab:m,isLoading:E,totals:C,onTabChange:_})})}),p?.paidMembersEnabled&&g===`paid-members`&&(0,$.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2 xl:grid-cols-[2fr_minmax(460px,1fr)]`,children:[(0,$.jsx)(en,{isLoading:E,memberData:x,range:e,subscriptionData:ee}),(0,$.jsx)(Xt,{isLoading:E,range:e})]}),(0,$.jsxs)(We,{className:`w-full overflow-x-auto`,"data-testid":`top-content-card`,children:[(0,$.jsxs)(Be,{children:[(0,$.jsx)(He,{children:wt(c)}),(0,$.jsx)(Ue,{children:Ct(c,e,M)})]}),(0,$.jsx)(Ve,{children:(0,$.jsxs)(Je,{children:[(0,$.jsx)(qe,{children:(0,$.jsxs)(F,{className:`[&>th]:h-auto [&>th]:pt-0 [&>th]:pb-2`,children:[(0,$.jsx)(P,{className:`min-w-[320px] pl-0`,children:(0,$.jsx)(Pe,{defaultValue:c,variant:`button-sm`,onValueChange:e=>{l(e)},children:(0,$.jsxs)(Ne,{children:[(0,$.jsx)(Me,{value:W.POSTS_AND_PAGES,children:`Posts & pages`}),(0,$.jsx)(Me,{value:W.POSTS,children:`Posts`}),(0,$.jsx)(Me,{value:W.PAGES,children:`Pages`}),(0,$.jsx)(Me,{value:W.SOURCES,children:`Sources`})]})})}),(0,$.jsx)(P,{className:`w-[140px] text-right`,children:p?.paidMembersEnabled?(0,$.jsx)(N,{activeSortBy:o,setSortBy:s,sortBy:`free_members desc`,children:`Free members`}):(0,$.jsx)($.Fragment,{children:`Free members`})}),p?.paidMembersEnabled&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(P,{className:`w-[140px] text-right`,children:(0,$.jsx)(N,{activeSortBy:o,setSortBy:s,sortBy:`paid_members desc`,children:`Paid members`})}),(0,$.jsx)(P,{className:`w-[140px] text-right`,children:(0,$.jsx)(N,{activeSortBy:o,setSortBy:s,sortBy:`mrr desc`,children:`MRR impact`})})]})]})}),c===W.SOURCES?(0,$.jsx)(Jt,{limit:20,range:e,setSortBy:e=>s(e),showViewAll:!0,sortBy:o}):(0,$.jsx)(I,{children:D?(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-2`,colSpan:1,children:(0,$.jsx)(it,{containerClassName:`space-y-2`,count:5,maxWidth:75,randomize:!0})})}):p?.analytics.membersTrackSources?ne.length>0?ne.map((e,n)=>(0,$.jsxs)(F,{className:`last:border-none`,children:[(0,$.jsx)(L,{children:(0,$.jsxs)(`div`,{className:`group/link inline-flex flex-col items-start gap-px`,children:[e.post_id&&e.attribution_type===`post`?(0,$.jsx)(S,{className:`h-auto p-0 text-left leading-tight font-medium whitespace-normal hover:underline!`,title:`View post analytics`,variant:`link`,onClick:Tt(e.attribution_url,e.post_id,t.url||``,a,e.attribution_type),children:e.title}):(0,$.jsx)(`span`,{className:`font-medium`,children:e.title}),e.published_at&&b&&new Date(e.published_at).getTime()>0&&(0,$.jsxs)(`span`,{className:`text-muted-foreground`,children:[`Published on `,b(e.published_at,r)]})]})}),(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[e.free_members>0&&`+`,h(e.free_members)]}),p?.paidMembersEnabled&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[e.paid_members>0&&`+`,h(e.paid_members)]}),(0,$.jsxs)(L,{className:`text-right font-mono text-sm`,children:[e.mrr>0&&`+`,w,h(B(e.mrr))]})]})]},`${c}-${e.post_id||`${e.title}-${n}`}`)):(0,$.jsx)(F,{className:`border-none`,children:(0,$.jsx)(L,{className:`py-12 group-hover:bg-transparent!`,colSpan:p?.paidMembersEnabled?4:2,children:(0,$.jsx)(Ge,{description:`Try adjusting your date range to see more data.`,title:`No conversions ${M(e)}`,children:(0,$.jsx)(y,{strokeWidth:1.5})})})}):(0,$.jsx)(F,{className:`last:border-none`,children:(0,$.jsx)(L,{className:`border-none py-12 group-hover:bg-transparent!`,colSpan:p?.paidMembersEnabled?4:2,children:(0,$.jsx)(gt,{})})})})]})})]})]})]})};export{nn as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{c as r,g as i,i as a,r as o}from"./stats-CnQDb62m.js";import{g as s}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as c,t as l}from"./router-provider-5fsX1CYn.js";import{Et as u,Tt as d,ar as f,nr as p,or as m,t as h}from"./button--i2uMDDn.js";import{g,n as _,o as v,r as y}from"./chart-ChpW-NzQ.js";import{a as b,c as x,i as ee,l as te,n as S,t as ne,u as re}from"./chart-helpers-C_4Ka_vT.js";import{n as ie,t as C}from"./sort-button-WOQYJm2H.js";import{r as ae,t as oe}from"./tabs-dtOcExye.js";import{a as w,i as T,n as E,o as D,r as O,s as k,t as A}from"./select-PhPjIBBT.js";import{a as j,n as M,o as N,r as P,t as F}from"./card-CSWz_BXq.js";import{t as I}from"./empty-indicator-BTtOlgIo.js";import{a as L,c as R,n as z,r as B,s as V,t as H}from"./table-C5nZYPnW.js";import{Br as se,Kr as U,Qr as ce,Ri as W,Vn as G,Wn as le,Wr as K,Xr as ue,d as q,ei as J,ri as de}from"./index-BacwlcOy.js";import{r as fe}from"./newsletters-DZm3yLj8.js";import{i as pe,n as me,r as he,t as ge}from"./stats-view-CCfTJgSe.js";import{n as Y,r as X,t as _e}from"./kpi-tabs-_VRK6hGV.js";import{t as ve}from"./use-analytics-data-0l_OHtnR.js";var Z=e(t(),1),Q=n(),ye=({active:e,payload:t})=>{if(!e||!t?.length)return null;let n=t[0].payload,r=typeof n.send_date==`string`?n.send_date:n.send_date.toISOString().split(`T`)[0];return(0,Q.jsxs)(`div`,{className:`max-w-[240px] min-w-[220px] rounded-lg border bg-background px-3 py-2 shadow-lg`,children:[(0,Q.jsxs)(`div`,{className:`mb-2 flex w-full flex-col border-b pb-2`,children:[(0,Q.jsx)(`span`,{className:`text-sm leading-tight font-semibold`,children:n.post_title}),(0,Q.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`Sent on `,p(r)]})]}),(0,Q.jsxs)(`div`,{className:`mb-1 flex w-full justify-between`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:`Sent`}),(0,Q.jsx)(`div`,{className:`ml-2 w-full text-right font-mono`,children:f(n.sent_to)})]}),(0,Q.jsxs)(`div`,{className:`mb-1 flex w-full justify-between`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:`Opens`}),(0,Q.jsxs)(`div`,{className:`ml-2 w-full text-right font-mono`,children:[(0,Q.jsxs)(`span`,{className:`text-muted-foreground`,children:[f(n.total_opens),` / `]}),m(n.open_rate)]})]}),(0,Q.jsxs)(`div`,{className:`mb-1 flex w-full justify-between`,children:[(0,Q.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:`Clicks`}),(0,Q.jsxs)(`div`,{className:`ml-2 w-full text-right font-mono`,children:[(0,Q.jsxs)(`span`,{className:`text-muted-foreground`,children:[f(n.total_clicks),` / `]}),m(n.click_rate)]})]})]})},be=({subscribersData:e,avgsData:t,totals:n,isLoading:r,isAvgsLoading:i,initialTab:a=`total-subscribers`})=>{let[o,l]=(0,Z.useState)(a),[d,p]=(0,Z.useState)(!1),{range:h}=q(),C=c(),[w]=s(),{appSettings:T}=W(),{emailTrackClicks:E,emailTrackOpens:D}=T?.analytics||{},{totalSubscribers:O,avgOpenRate:k,avgClickRate:A}=n,j=(0,Z.useMemo)(()=>{if(!e||e.length===0)return[];let t=[];return t=ee(e,h,`value`,`exact`),t.map(e=>({...e,formattedValue:f(e.value),label:`Total Subscribers`}))},[e,h]),M=(0,Z.useMemo)(()=>ne(h,e||[]),[e,h]),N=(0,Z.useMemo)(()=>{if(!j||j.length<=1)return{direction:`same`,value:`0%`};let e=j[0]?.value??0,t=j[j.length-1]?.value??0,n=`same`;t>e?n=`up`:t<e&&(n=`down`);let r;if(e===0)r=t===0?`0%`:`+100%`;else{let n=(t-e)/e*100,i=Math.round(n*10)/10;r=`${n>=0?`+`:``}${i}%`}return{direction:n,value:r}},[j]);(0,Z.useEffect)(()=>{l(a)},[a]);let P=e=>{l(e);let t=new URLSearchParams(w);t.set(`tab`,e),C(`?${t.toString()}`,{replace:!0})},F={open_rate:{label:`Open rate`}},L=(0,Z.useMemo)(()=>({"total-subscribers":{color:`var(--chart-darkblue)`,datakey:`value`},"avg-open-rate":{color:`var(--chart-blue)`,datakey:`open_rate`},"avg-click-rate":{color:`var(--chart-teal)`,datakey:`click_rate`}}),[]),{barDomain:R,barTicks:z}=(0,Z.useMemo)(()=>{if(!t||t.length===0||o===`total-subscribers`)return{barDomain:[0,1],barTicks:[0,1]};let e=L[o]?.datakey;if(!e)return{barDomain:[0,1],barTicks:[0,1]};let n=t.map(t=>t[e]).filter(e=>typeof e==`number`);if(n.length===0)return{barDomain:[0,1],barTicks:[0,1]};let r=o===`avg-open-rate`?k:A,i=Math.max(Math.max(...n),r),a;return a=i<.01?.01:i<.1?(Math.floor(i*100)+1)/100:(Math.floor(i*10)+1)/10,{barDomain:[0,a],barTicks:[0,a]}},[t,o,L,k,A]);if(r)return(0,Q.jsx)(`div`,{className:`-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center`,children:(0,Q.jsx)(G,{})});let B=`grid-cols-3`;(!E||!D)&&(B=`grid-cols-2`),!E&&!D&&(B=`grid-cols-1`);let V=o===`avg-open-rate`&&k>R[0]&&k<R[1]||o===`avg-click-rate`&&A>R[0]&&A<R[1],H=o===`avg-open-rate`?k:A;return(0,Q.jsxs)(oe,{defaultValue:a,variant:`kpis`,children:[(0,Q.jsxs)(ae,{className:`-mx-6 hidden grid-cols-3 md:visible! md:grid! ${B}`,children:[(0,Q.jsx)(Y,{className:`${!D&&!E&&`cursor-auto after:hidden`}`,value:`total-subscribers`,onClick:()=>{P(`total-subscribers`)},children:(0,Q.jsx)(X,{color:L[`total-subscribers`].color,"data-testid":`total-subscribers-value`,diffDirection:N.direction,diffValue:N.value,label:`Total subscribers`,value:f(O)})}),D&&(0,Q.jsx)(Y,{value:`avg-open-rate`,onClick:()=>{P(`avg-open-rate`)},children:(0,Q.jsx)(X,{className:i?`opacity-50`:``,color:L[`avg-open-rate`].color,label:`Avg. open rate`,value:m(k)})}),E&&(0,Q.jsx)(Y,{value:`avg-click-rate`,onClick:()=>{P(`avg-click-rate`)},children:(0,Q.jsx)(X,{className:i?`opacity-50`:``,color:L[`avg-click-rate`].color,label:`Avg. click rate`,value:m(A)})})]}),(0,Q.jsxs)(ue,{children:[(0,Q.jsx)(de,{className:`md:hidden`,asChild:!0,children:(0,Q.jsxs)(_e,{children:[o===`total-subscribers`&&(0,Q.jsx)(X,{color:L[`total-subscribers`].color,label:`Total subscribers`,value:f(O)}),o===`avg-open-rate`&&D&&(0,Q.jsx)(X,{className:i?`opacity-50`:``,color:L[`avg-open-rate`].color,label:`Avg. open rate`,value:m(k)}),o===`avg-click-rate`&&E&&(0,Q.jsx)(X,{className:i?`opacity-50`:``,color:L[`avg-click-rate`].color,label:`Avg. click rate`,value:m(A)})]})}),(0,Q.jsxs)(ce,{align:`end`,className:`w-56`,children:[(0,Q.jsx)(J,{onClick:()=>P(`total-subscribers`),children:`Total subscribers`}),D&&(0,Q.jsx)(J,{onClick:()=>P(`avg-open-rate`),children:`Avg. open rate`}),E&&(0,Q.jsx)(J,{onClick:()=>P(`avg-click-rate`),children:`Avg. click rate`})]})]}),(0,Q.jsxs)(`div`,{className:`my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500`,children:[o===`total-subscribers`&&(0,Q.jsx)(b,{className:`-mb-3 h-[16vw] max-h-[320px] min-h-[180px] w-full`,color:L[`total-subscribers`].color,data:j,id:`mrr`,range:M}),(o===`avg-open-rate`&&D||o===`avg-click-rate`&&E)&&(0,Q.jsx)(Q.Fragment,{children:i?(0,Q.jsx)(`div`,{className:`h-[320px] w-full items-center justify-center`,children:(0,Q.jsx)(G,{})}):t&&t.length>0?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(_,{className:`aspect-auto h-[200px] w-full md:h-[220px] xl:h-[320px]`,config:F,children:(0,Q.jsxs)(ie,{className:d?`cursor-pointer!`:``,data:t,margin:{top:20},onClick:e=>{let t=(e.activePayload?.[0])?.payload?.post_id;t&&C(`/posts/analytics/${t}`,{crossApp:!0})},onMouseLeave:()=>p(!1),onMouseMove:e=>{let t=(e.activePayload?.[0])?.payload?.post_id;p(!!t)},children:[(0,Q.jsx)(`defs`,{children:(0,Q.jsxs)(`linearGradient`,{id:`barGradient`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,Q.jsx)(`stop`,{offset:`0%`,stopColor:L[o].color,stopOpacity:.8}),(0,Q.jsx)(`stop`,{offset:`100%`,stopColor:L[o].color,stopOpacity:.6})]})}),(0,Q.jsx)(re,{horizontal:!0,stroke:`var(--border)`,vertical:!1}),(0,Q.jsx)(te,{axisLine:{stroke:`var(--border)`,strokeWidth:1},dataKey:`post_id`,interval:0,stroke:`var(--border)`,tickFormatter:()=>``,tickLine:!1,tickMargin:10}),(0,Q.jsx)(x,{axisLine:!1,domain:R,tickFormatter:e=>m(e),tickLine:!1,ticks:z,width:se(z,e=>m(e))}),(0,Q.jsx)(y,{content:(0,Q.jsx)(ye,{}),cursor:!1,isAnimationActive:!1,position:{y:10}}),V&&(0,Q.jsx)(v,{label:{value:`${m(H)}`,position:`left`,offset:8,fill:`var(--muted-foreground)`},opacity:.5,stroke:`var(--muted-foreground)`,strokeDasharray:`4 4`,y:H}),(0,Q.jsx)(g,{activeBar:{fillOpacity:1},dataKey:L[o].datakey,fill:`url(#barGradient)`,fillOpacity:.6,isAnimationActive:!1,maxBarSize:32,minPointSize:3,radius:4})]})}),(0,Q.jsxs)(`div`,{className:`-mt-4 text-center text-sm text-muted-foreground`,children:[`Newsletters `,o===`avg-open-rate`?`opens`:`clicks`,` in this period`]})]}):(0,Q.jsx)(I,{className:`size-full py-20`,title:`No newsletters ${S(h)}`,children:(0,Q.jsx)(u,{strokeWidth:1.5})})})]})]})},xe=({newsletters:e})=>{let{selectedNewsletterId:t,setSelectedNewsletterId:n}=q(),r=(0,Z.useMemo)(()=>e?.filter(e=>e.status===`active`)||[],[e]);return(0,Z.useEffect)(()=>{if(r.length>0&&!t){let e=r.find(e=>e.sort_order===0);n(e?e.id:r[0].id)}},[r,t,n]),r.length<=1?null:(0,Q.jsxs)(A,{value:t||``,onValueChange:e=>{n(e)},children:[(0,Q.jsxs)(D,{className:`w-auto`,children:[(0,Q.jsx)(d,{className:`mr-2`,size:16,strokeWidth:1.5}),(0,Q.jsx)(k,{placeholder:`Select a newsletter`})]}),(0,Q.jsx)(E,{align:`end`,children:(0,Q.jsxs)(O,{children:[(0,Q.jsx)(w,{children:`Newsletters`}),r.map(e=>(0,Q.jsx)(T,{value:e.id,children:e.name},e.id))]})})]})},Se=(e,t,n=!0)=>{let i=e??30,{startDate:a,endDate:o}=(0,Z.useMemo)(()=>U(i),[i]),s=r({searchParams:(0,Z.useMemo)(()=>{let e={date_from:K(a),date_to:K(o)};return t&&(e.newsletter_id=t),e},[a,o,t]),enabled:n});return n?s:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:s.refetch}},Ce=(e,t,n,r=!0)=>{let i=e??30,a=t??`date desc`,{startDate:s,endDate:c}=(0,Z.useMemo)(()=>U(i),[i]),l=o({searchParams:(0,Z.useMemo)(()=>{let e={date_from:K(s),date_to:K(c),order:a};return n&&(e.newsletter_id=n),e},[s,c,a,n]),enabled:r});return r?l:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:l.refetch}},we=(e,t=[],n=!0)=>{let r=a({searchParams:(0,Z.useMemo)(()=>{let n={};return e&&(n.newsletter_id=e),t.length>0&&(n.post_ids=t.join(`,`)),n},[e,t]),enabled:n});return n?r:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:r.refetch}},Te=(e,t,n,r=!0)=>{let i=Ce(e,t,n,r),a=(0,Z.useMemo)(()=>i.data?.stats?i.data.stats.map(e=>e.post_id):[],[i.data]),o=we(n,a,r&&a.length>0);return{data:(0,Z.useMemo)(()=>{if(!i.data?.stats)return;let e=i.data.stats,t=o.data?.stats||[],n=new Map;t.forEach(e=>{n.set(e.post_id,e)});let r=e.map(e=>{let t=n.get(e.post_id);return{...e,total_clicks:t?.total_clicks||0,click_rate:t?.click_rate||0}});return{...i.data,stats:r}},[i.data,o.data]),isLoading:i.isLoading,isClicksLoading:o.isLoading,error:i.error||o.error,isError:i.isError||o.isError,refetch:()=>{i.refetch(),o.refetch()}}},Ee=Z.memo(({range:e,selectedNewsletterId:t,shouldFetchStats:n,sortBy:r})=>{let i=c(),{settings:a}=ve(),o=String(a.find(e=>e.key===`timezone`)?.value||`Etc/UTC`),{data:s,isLoading:l,isClicksLoading:d}=Te(e,r,t||void 0,!!n),{appSettings:g}=W(),{emailTrackClicks:_,emailTrackOpens:v}=g?.analytics||{},y=(0,Z.useMemo)(()=>s?.stats||[],[s]),b=v&&_?5:v||_?4:3,x=(0,Z.useMemo)(()=>(0,Q.jsx)(Q.Fragment,{children:(0,Q.jsx)(R,{className:`last:border-none [&>td]:py-2.5`,children:(0,Q.jsx)(B,{className:`font-medium`,colSpan:b,children:(0,Q.jsx)(le,{className:`mt-5`})})})}),[b]),ee=(0,Z.useMemo)(()=>y.length>0?(0,Q.jsx)(Q.Fragment,{children:y.map(e=>(0,Q.jsxs)(R,{className:`last:border-none [&>td]:py-2.5`,children:[(0,Q.jsx)(B,{className:`font-medium`,children:(0,Q.jsx)(`div`,{className:`group/link inline-flex items-center gap-2`,children:e.post_id?(0,Q.jsx)(h,{className:`h-auto p-0 text-left whitespace-normal hover:underline!`,title:`View post analytics`,variant:`link`,onClick:()=>{i(`/posts/analytics/${e.post_id}/`,{crossApp:!0})},children:e.post_title}):(0,Q.jsx)(Q.Fragment,{children:e.post_title})})}),(0,Q.jsx)(B,{className:`text-sm whitespace-nowrap`,children:p(e.send_date,o)}),(0,Q.jsx)(B,{className:`text-right font-mono text-sm`,children:f(e.sent_to)}),v&&(0,Q.jsxs)(B,{className:`text-right font-mono text-sm`,children:[(0,Q.jsx)(`span`,{className:`group-hover:hidden`,children:m(e.open_rate)}),(0,Q.jsx)(`span`,{className:`hidden group-hover:visible! group-hover:block!`,children:f(e.total_opens)})]}),_&&(0,Q.jsx)(B,{className:`text-right font-mono text-sm`,children:d?(0,Q.jsx)(`span`,{className:`inline-block h-4 w-8 animate-pulse rounded bg-gray-200`}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`group-hover:hidden`,children:m(e.click_rate)}),(0,Q.jsx)(`span`,{className:`hidden group-hover:visible! group-hover:block!`,children:f(e.total_clicks)})]})})]},e.post_id))}):(0,Q.jsx)(R,{className:`border-none hover:bg-transparent`,children:(0,Q.jsx)(B,{className:`text-center group-hover:bg-transparent!`,colSpan:b,children:(0,Q.jsx)(I,{className:`size-full py-20`,title:`No newsletters ${S(e)}`,children:(0,Q.jsx)(u,{strokeWidth:1.5})})})}),[y,d,i,_,v,e]);return l||!s?x:ee});Ee.displayName=`NewsletterTableRows`;var De=Z.memo(({sortBy:e,setSortBy:t,range:n})=>{let r=(0,Z.useMemo)(()=>(0,Q.jsxs)(j,{children:[(0,Q.jsx)(N,{children:`Top newsletters`}),(0,Q.jsxs)(P,{children:[` Your best performing newsletters `,S(n)]})]}),[n]),{appSettings:i}=W(),{emailTrackClicks:a,emailTrackOpens:o}=i?.analytics||{};return(0,Q.jsx)(V,{children:(0,Q.jsxs)(R,{children:[(0,Q.jsx)(L,{className:`min-w-[320px]`,variant:`cardhead`,children:r}),(0,Q.jsx)(L,{className:`w-[65px]`,children:(0,Q.jsx)(C,{activeSortBy:e,setSortBy:t,sortBy:`date desc`,children:`Date`})}),(0,Q.jsx)(L,{className:`w-[90px] text-right`,children:(0,Q.jsx)(C,{activeSortBy:e,setSortBy:t,sortBy:`sent_to desc`,children:`Sent`})}),o&&(0,Q.jsx)(L,{className:`w-[90px] text-right`,children:(0,Q.jsx)(C,{activeSortBy:e,setSortBy:t,sortBy:`open_rate desc`,children:`Opens`})}),a&&(0,Q.jsx)(L,{className:`w-[90px] text-right`,children:(0,Q.jsx)(C,{activeSortBy:e,setSortBy:t,sortBy:`click_rate desc`,children:`Clicks`})})]})})});De.displayName=`NewsletterTableHeader`;var $=Z.memo(({range:e,selectedNewsletterId:t,shouldFetchStats:n})=>{let[r,i]=(0,Z.useState)(`open_rate desc`);return(0,Q.jsx)(F,{className:`w-full max-w-[calc(100vw-64px)] overflow-x-auto sidebar:max-w-[calc(100vw-64px-280px)]`,"data-testid":`top-newsletters-card`,children:(0,Q.jsx)(M,{children:(0,Q.jsxs)(H,{children:[(0,Q.jsx)(De,{range:e,setSortBy:i,sortBy:r}),(0,Q.jsx)(z,{children:(0,Q.jsx)(Ee,{range:e,selectedNewsletterId:t,shouldFetchStats:n,sortBy:r})})]})})})});$.displayName=`TopNewslettersTable`;var Oe=()=>{let{range:e,selectedNewsletterId:t}=q(),[n]=s(),{appSettings:r}=W(),a=n.get(`tab`)||`total-subscribers`,{data:o,isLoading:c}=fe({searchParams:{limit:`50`}}),u=!c&&o&&o.newsletters.length>0&&!!t,{data:d,isLoading:f}=Se(e,t||void 0,u||!1),{data:p,isLoading:m,isClicksLoading:h}=Te(e,`date asc`,t||void 0,u||!1),g=(0,Z.useMemo)(()=>!o?.newsletters||!t?null:o.newsletters.find(e=>e.id===t)||null,[o,t]),_=(0,Z.useMemo)(()=>{let e=g?.count?.active_members||d?.stats?.[0]?.total||0,t=0,n=0;if(p?.stats&&p.stats.length>0){let e=p.stats,r=e.reduce((e,t)=>e+(t.open_rate||0),0),i=e.reduce((e,t)=>e+(t.click_rate||0),0);t=r/e.length,n=i/e.length}return{totalSubscribers:e,avgOpenRate:t,avgClickRate:n}},[g,d,p]),v=(0,Z.useMemo)(()=>{if(!d?.stats?.[0]?.values||d.stats[0].values.length===0){let{startDate:t,endDate:n}=U(e),r=[],i=t.clone().toDate(),a=n.toDate();for(;i<=a;)r.push({date:i.toISOString().split(`T`)[0],value:0}),i.setDate(i.getDate()+1);return r}let t=d.stats[0].values;if(t.length===1){let n=t[0],r=new Date,i=e,a=new Date(r.getTime()-i*24*60*60*1e3);return[{...n,date:a.toISOString().split(`T`)[0]},{...n,date:r.toISOString().split(`T`)[0]}]}return t},[d,e]),y=(0,Z.useMemo)(()=>p?.stats?p.stats.map(e=>({post_id:e.post_id,post_title:e.post_title,send_date:e.send_date,sent_to:e.sent_to,total_opens:e.total_opens,open_rate:e.open_rate,total_clicks:e.total_clicks||0,click_rate:e.click_rate||0})):[],[p]),b=f||h||m;return r&&!r.newslettersEnabled?(0,Q.jsx)(l,{to:`/analytics`}):(0,Q.jsxs)(me,{children:[(0,Q.jsx)(he,{children:(0,Q.jsxs)(i,{children:[(0,Q.jsx)(xe,{newsletters:o?.newsletters}),(0,Q.jsx)(pe,{})]})}),(0,Q.jsx)(ge,{isLoading:!1,loadingComponent:(0,Q.jsx)(Q.Fragment,{}),children:(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(F,{"data-testid":`newsletters-card`,children:(0,Q.jsx)(M,{children:(0,Q.jsx)(be,{avgsData:y,initialTab:a,isAvgsLoading:!1,isLoading:b,subscribersData:v,totals:_})})}),(0,Q.jsx)($,{range:e,selectedNewsletterId:t,shouldFetchStats:!!u})]})})]})};export{Oe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{t as r}from"./use-tinybird-query-DvZBBMG7.js";import{f as i,g as a,s as o}from"./stats-CnQDb62m.js";import{n as s}from"./posts-CwH8VJvB.js";import{t as c}from"./analytics-53FOa2wq.js";import{a as l,t as u}from"./post-helpers-C5OQMBoi.js";import{a as d}from"./router-provider-5fsX1CYn.js";import{At as f,Bt as p,En as m,Gt as h,I as g,ar as _,at as v,c as y,dt as b,en as x,er as S,jn as ee,kn as te,ln as C,m as w,nr as T,or as E,r as D,t as O,tr as k,ut as A,z as j}from"./button--i2uMDDn.js";import{a as M,i as N,n as P,t as F}from"./chart-helpers-C_4Ka_vT.js";import{a as I,n as L,o as R,r as z,s as ne,t as B}from"./card-CSWz_BXq.js";import{t as V}from"./empty-indicator-BTtOlgIo.js";import{Kr as re,Oi as ie,Ri as H,Un as U,Vn as ae,Vr as W,Wn as oe,Wr as G,c as K,d as q,r as se}from"./index-BacwlcOy.js";import{i as ce,n as le,r as ue,t as de}from"./stats-view-CCfTJgSe.js";import{t as fe}from"./use-growth-stats-BJORomv0.js";import{n as pe,r as me,t as he}from"./kpi-card-DZxQKAIb.js";import{t as J}from"./use-analytics-data-0l_OHtnR.js";import{n as ge}from"./audience-adiFehTD.js";import{n as Y}from"./url-helpers-CCyfRrKj.js";import{t as _e}from"./post-share-modal-Cave3Z4W.js";var X=e(t(),1),ve=()=>{let{data:{posts:[e]}={posts:[]},isLoading:t}=s({searchParams:{filter:`status:[published,sent]`,order:`published_at DESC`,limit:`1`,include:`authors,email,count.clicks`}}),n=e,{data:r,isLoading:i}=o(n?.id||``,{enabled:!!n?.id});return{data:(0,X.useMemo)(()=>{if(!n)return null;let e=r?.stats?.[0]||{id:n.id,recipient_count:null,opened_count:null,open_rate:null,member_delta:0,free_members:0,paid_members:0,visitors:0};return{id:n.id,uuid:n.uuid,title:n.title||``,slug:n.slug||``,feature_image:n.feature_image||null,published_at:n.published_at||``,url:n.url||``,excerpt:n.excerpt||``,email_only:n.email_only||!1,status:n.status,email:n.email,count:n.count,authors:n.authors||[],recipient_count:e.recipient_count,opened_count:e.opened_count,open_rate:e.open_rate,member_delta:e.member_delta,free_members:e.free_members,paid_members:e.paid_members,visitors:e.visitors,click_rate:null}},[n,r]),isLoading:t||!!n?.id&&i}},Z=n(),ye=e=>e.email_only?`Sent`:e.email?`Published and sent`:`Published`,be=({latestPostStats:e,isLoading:t})=>{let n=d(),[r,i]=(0,X.useState)(!1),{site:a,settings:o}=J(),{appSettings:s}=H(),{emailTrackClicks:l,emailTrackOpens:p,webAnalytics:m=!1,membersTrackSources:y=!1}=s?.analytics||{};(0,X.useEffect)(()=>{r&&c(`Share Modal Opened`,{giftLinkShown:!1,source:`stats-overview`})},[r]);let S=a.title||String(o.find(e=>e.key===`title`)?.value||`Ghost Site`),ee=String(o.find(e=>e.key===`timezone`)?.value||`Etc/UTC`),C=e?u(e,{membersTrackSources:y}):null,D=`group mr-2 flex flex-col gap-1.5 hover:cursor-pointer`,A=!!e?.email,j=Y({postId:e?.id,hasEmailData:A,analytics:{webAnalytics:m,membersTrackSources:y}}),M=j.startsWith(`/editor/`);return(0,Z.jsxs)(B,{className:`group/card`,"data-testid":`latest-post`,children:[(0,Z.jsxs)(I,{children:[(0,Z.jsx)(R,{className:`flex items-baseline justify-between leading-snug font-medium text-muted-foreground`,children:`Latest post performance`}),(0,Z.jsx)(z,{className:`hidden`,children:`How your last post did`})]}),(0,Z.jsxs)(L,{className:`flex flex-col gap-6 px-0 lg:flex-row xl:grid xl:grid-cols-3`,children:[t&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex w-full items-center gap-6 px-6 xl:col-span-2`,children:[(0,Z.jsx)(`div`,{className:`w-full max-w-[232px] grow`,children:(0,Z.jsx)(U,{className:`aspect-[16/10] rounded-md`})}),(0,Z.jsxs)(`div`,{className:`w-full grow`,children:[(0,Z.jsx)(U,{className:`w-full max-w-[420px]`}),(0,Z.jsx)(U,{className:`w-1/2`})]})]}),(0,Z.jsx)(`div`,{className:`flex flex-col items-stretch gap-2 px-6`,children:(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-5`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(U,{className:`w-3/4`}),(0,Z.jsx)(U,{className:`h-10 w-1/3`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(U,{className:`w-3/4`}),(0,Z.jsx)(U,{className:`h-10 w-1/3`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(U,{className:`w-3/4`}),(0,Z.jsx)(U,{className:`h-10 w-1/3`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(U,{className:`w-3/4`}),(0,Z.jsx)(U,{className:`h-10 w-1/3`})]})]})})]}),!t&&e&&C?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-6 px-6 transition-all md:flex-row md:items-start xl:col-span-2`,children:[e.feature_image&&(0,Z.jsx)(`div`,{className:`aspect-[16/10] w-full min-w-[100px] rounded-sm bg-cover bg-center sm:max-w-[170px] lg:max-w-[170px] xl:max-w-[232px]`,style:{backgroundImage:`url(${e.feature_image})`}}),(0,Z.jsxs)(`div`,{className:`flex grow flex-col items-start justify-center self-stretch`,children:[(0,Z.jsx)(`div`,{className:`text-md leading-tighter font-semibold tracking-tight hover:cursor-pointer hover:opacity-75`,onClick:()=>{!t&&e&&n(j,{crossApp:!0})},children:e.title}),(0,Z.jsxs)(`div`,{className:`mt-1 text-muted-foreground`,children:[e.authors&&e.authors.length>0&&(0,Z.jsxs)(`div`,{children:[`By `,e.authors.map(e=>e.name).join(`, `),` – `,T(e.published_at,ee)]}),(0,Z.jsx)(`div`,{className:`mt-0.5`,children:ye(e)})]}),(0,Z.jsxs)(`div`,{className:`mt-6 flex items-center gap-2`,children:[!e.email_only&&(0,Z.jsx)(_e,{author:e.authors?.map(e=>e.name).join(`, `)||``,description:``,faviconURL:a.icon||``,featureImageURL:e.feature_image||``,open:r,postExcerpt:e.excerpt||``,postTitle:e.title,postURL:e.url||``,siteTitle:S,onClose:()=>i(!1),onOpenChange:i,children:(0,Z.jsxs)(O,{onClick:()=>i(!0),children:[(0,Z.jsx)(g,{}),` Share post`]})}),(0,Z.jsx)(O,{className:e.email_only?`w-full`:``,variant:`outline`,onClick:()=>{n(j,{crossApp:!0})},children:M?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(v,{}),(0,Z.jsx)(`span`,{className:`hidden md:visible! md:block!`,children:`Edit post`})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(te,{}),(0,Z.jsx)(`span`,{className:`hidden md:visible! md:block!`,children:e.email_only?`Post analytics`:`Analytics`})]})})]})]})]}),(0,Z.jsx)(`div`,{className:`-ml-4 flex w-full flex-col items-stretch gap-2 pr-6 xl:h-full xl:max-w-none`,children:(0,Z.jsxs)(`div`,{className:`grid grid-cols-2 gap-6 pl-10 lg:border-l xl:h-full`,children:[C.showWebMetrics&&m&&(0,Z.jsxs)(`div`,{className:D,"data-testid":`latest-post-visitors`,onClick:()=>{n(`/posts/analytics/${e.id}/web`,{crossApp:!0})},children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground`,children:[(0,Z.jsx)(h,{size:16,strokeWidth:1.25}),(0,Z.jsx)(`span`,{className:`hidden md:visible! md:block!`,children:`Visitors`})]}),(0,Z.jsx)(`span`,{className:`text-[2.2rem] leading-none font-semibold tracking-tighter`,children:_(e.visitors)})]}),C.showMemberGrowth&&(0,Z.jsxs)(`div`,{className:k(D,C.showEmailMetrics&&(!C.showWebMetrics||!m)&&`col-[1/2] row-[2/3]`),"data-testid":`latest-post-members`,onClick:()=>{n(`/posts/analytics/${e.id}/growth`,{crossApp:!0})},children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground`,children:[(0,Z.jsx)(w,{size:16,strokeWidth:1.25}),(0,Z.jsx)(`span`,{className:`hidden md:visible! md:block!`,children:`Members`})]}),(0,Z.jsx)(`span`,{className:`text-[2.2rem] leading-none font-semibold tracking-tighter`,children:e.member_delta?(0,Z.jsxs)(Z.Fragment,{children:[`+`,_(e.member_delta)]}):0})]}),C.showEmailMetrics&&e.email&&(0,Z.jsxs)(Z.Fragment,{children:[p&&(0,Z.jsxs)(`div`,{className:D,onClick:()=>{n(`/posts/analytics/${e.id}/newsletter`,{crossApp:!0})},children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground`,children:[(0,Z.jsx)(f,{size:16,strokeWidth:1.25}),(0,Z.jsx)(`span`,{className:`hidden whitespace-nowrap md:visible! md:block!`,children:`Opens`})]}),(0,Z.jsx)(`span`,{className:`text-[2.2rem] leading-none font-semibold tracking-tighter`,children:e.email.email_count?E((e.email.opened_count||0)/e.email.email_count):`0%`})]}),l&&(0,Z.jsxs)(`div`,{className:D,onClick:()=>{n(`/posts/analytics/${e.id}/newsletter`,{crossApp:!0})},children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-muted-foreground transition-all group-hover:text-foreground`,children:[(0,Z.jsx)(b,{size:16,strokeWidth:1.25}),(0,Z.jsx)(`span`,{className:`hidden whitespace-nowrap md:visible! md:block!`,children:`Clicks`})]}),(0,Z.jsx)(`span`,{className:`text-[2.2rem] leading-none font-semibold tracking-tighter`,children:e.email.email_count&&e.count?.clicks?E((e.count.clicks||0)/e.email.email_count):`0%`})]})]})]})})]}):!t&&(0,Z.jsx)(V,{actions:(0,Z.jsx)(O,{variant:`secondary`,onClick:()=>{n(`/editor/post`,{crossApp:!0})},children:`New post`}),className:`w-full pb-10 xl:col-span-3`,description:`Once it's live, you can track performance here`,title:`Publish your first post`,children:(0,Z.jsx)(x,{strokeWidth:1.5})})]})]})},xe=()=>{let{config:e}=J();return{isLimited:t=>e?.hostSettings?.limits&&t===`limitAnalytics`?e.hostSettings.limits.limitAnalytics?.disabled===!0:!1}},Q=({title:e,iconName:t,description:n,color:r,diffDirection:i,diffValue:a,formattedValue:o,trendingFromValue:s,children:c,onClick:l})=>{let{range:u}=q(),d=t&&D[t],f=X.useMemo(()=>{if(!i||i===`empty`||u===K.allTime.value||!a)return``;let e=i===`up`?`up`:i===`down`?`down`:`at`,t=P(u).replace(`in the `,``).replace(/^\(|\)$/g,``);return i===`same`?(0,Z.jsxs)(`span`,{children:[`You're trending at the same level as `,(0,Z.jsx)(`span`,{className:`font-semibold`,children:o}),` compared to the `,(0,Z.jsx)(`span`,{className:`font-semibold`,children:t})]}):(0,Z.jsxs)(`span`,{children:[`You're trending `,(0,Z.jsxs)(`span`,{className:`font-semibold`,children:[e,` `,a]}),` from `,(0,Z.jsx)(`span`,{className:`font-semibold`,children:s}),` compared to the `,t]})},[i,a,s,o,u]);return(0,Z.jsxs)(B,{className:`group`,"data-testid":e,children:[(0,Z.jsxs)(I,{className:`hidden`,children:[(0,Z.jsx)(R,{children:e}),(0,Z.jsx)(z,{children:n})]}),(0,Z.jsxs)(he,{className:`relative flex grow flex-row items-start justify-between gap-5 border-none pb-2 xl:pb-4`,children:[(0,Z.jsxs)(`div`,{className:`flex grow flex-col gap-1.5 border-none pb-0`,children:[(0,Z.jsxs)(pe,{className:l&&`transition-all group-hover:text-foreground`,children:[r&&(0,Z.jsx)(`span`,{className:`inline-block size-2 rounded-full opacity-50`,style:{backgroundColor:r}}),d&&(0,Z.jsx)(d,{size:16,strokeWidth:1.5}),e]}),(0,Z.jsx)(me,{diffDirection:u===K.allTime.value?`hidden`:i,diffTooltip:f,diffValue:a,value:o})]}),l&&(0,Z.jsx)(O,{className:`absolute right-6 translate-x-10 opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100 focus-visible:translate-x-0 focus-visible:opacity-100`,size:`sm`,variant:`outline`,onClick:l,children:`View more`})]}),(0,Z.jsx)(L,{children:c})]})},Se=({kpiValues:e,visitorsChartData:t,visitorsChartRange:n,visitorsYRange:r,growthTotals:i,membersChartData:a,mrrChartData:o,growthChartRange:s,currencySymbol:c,isLoading:l})=>{let u=d(),{appSettings:f}=H(),p=xe().isLimited(`limitAnalytics`),h=`-mb-3 h-[10vw] max-h-[200px] min-h-[100px] hover:cursor-pointer!`;if(l)return(0,Z.jsx)(ne,{className:`flex h-[calc(10vw+116px)] max-h-[416px] min-h-20 items-center justify-center hover:cursor-pointer!`,children:(0,Z.jsx)(ae,{})});let g=f?.analytics.webAnalytics,v=p&&!g,y=f?.paidMembersEnabled,b=[g,v,!0,y].filter(Boolean).length,x=`lg:grid-cols-3`;return b===2?x=`lg:grid-cols-2`:b===1&&(x=`lg:grid-cols-1`),(0,Z.jsxs)(`div`,{className:`flex flex-col lg:grid ${x} gap-6`,children:[g&&!v&&(0,Z.jsx)(Q,{description:`Number of individual people who visited your website`,diffDirection:`empty`,formattedValue:e.visits,iconName:`Globe`,linkto:`/analytics/web/`,title:`Unique visitors`,onClick:()=>{u(`/analytics/web/`)},children:(0,Z.jsx)(M,{className:h,color:`var(--chart-blue)`,data:t,id:`visitors`,range:n,showHorizontalLines:!0,showYAxisValues:!1,syncId:`overview-charts`,yAxisRange:r})}),v&&(0,Z.jsxs)(B,{children:[(0,Z.jsxs)(I,{className:`hidden`,children:[(0,Z.jsx)(R,{children:`Unlock web analytics`}),(0,Z.jsx)(z,{children:`Get the full picture of what's working with detailed, cookie-free traffic analytics.`})]}),(0,Z.jsx)(L,{className:`flex h-full items-center justify-center p-6`,children:(0,Z.jsx)(V,{actions:(0,Z.jsx)(O,{variant:`outline`,onClick:()=>u(`/pro`,{crossApp:!0}),children:`Upgrade now`}),className:`py-10`,description:`Get the full picture of what's working with detailed, cookie-free traffic analytics.`,title:`Unlock web analytics`,children:(0,Z.jsx)(m,{})})})]}),(0,Z.jsx)(Q,{description:`How number of members of your publication changed over time`,diffDirection:i.directions.total,diffValue:i.percentChanges.total,formattedValue:_(i.totalMembers),iconName:`User`,linkto:`/analytics/growth/`,title:`Members`,trendingFromValue:`${_(a[0].value)}`,onClick:()=>{u(`/analytics/growth/?tab=total-members`)},children:(0,Z.jsx)(M,{className:h,color:`var(--chart-darkblue)`,data:a,id:`members`,range:s,showHorizontalLines:!0,showYAxisValues:!1,syncId:`overview-charts`})}),y&&(0,Z.jsx)(Q,{description:`Monthly recurring revenue changes over time`,diffDirection:i.directions.mrr,diffValue:i.percentChanges.mrr,formattedValue:`${c}${_(W(i.mrr))}`,iconName:`Coins`,linkto:`/analytics/growth/`,title:`MRR`,trendingFromValue:`${c}${_(o[0].value)}`,onClick:()=>{u(`/analytics/growth/?tab=mrr`)},children:(0,Z.jsx)(M,{className:h,color:`var(--chart-teal)`,data:o,id:`mrr`,range:s,showHorizontalLines:!0,showYAxisValues:!1,syncId:`overview-charts`})})]})},Ce=({className:e})=>(0,Z.jsx)(`div`,{className:k(`flex flex-col items-center justify-center gap-1 rounded-sm bg-muted p-6 dark:bg-surface-elevated-2`,e),children:(0,Z.jsx)(p,{className:`text-muted-foreground/50`,size:18,strokeWidth:1.5})}),$=({className:e,metrics:t,title:n})=>(0,Z.jsx)(Z.Fragment,{children:(0,Z.jsxs)(`div`,{className:k(`pointer-events-none absolute bottom-[calc(100%+2px)] left-1/2 z-50 min-w-[160px] -translate-x-1/2 rounded-md bg-background p-3 text-sm opacity-0 shadow-md transition-all group-hover/tooltip:bottom-[calc(100%+12px)] group-hover/tooltip:opacity-100`,e),children:[(0,Z.jsx)(`div`,{className:`mb-1.5 border-b pr-10 pb-1.5 font-medium whitespace-nowrap text-muted-foreground`,children:n}),(0,Z.jsx)(`div`,{className:`flex flex-col gap-1.5`,children:t?.map(e=>(0,Z.jsxs)(`div`,{className:`flex items-center justify-between gap-5`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-1.5 whitespace-nowrap`,children:[e.icon,e.label]}),(0,Z.jsx)(`span`,{className:`font-mono`,children:e.metric})]},e.label))})]})}),we=({topPostsData:e,isLoading:t})=>{let n=d(),{range:r}=q(),{settings:i}=J(),{appSettings:a}=H(),o=String(i.find(e=>e.key===`timezone`)?.value||`Etc/UTC`),{webAnalytics:s=!1,membersTrackSources:c=!1,emailTrackClicks:u=!1,emailTrackOpens:p=!1}=a?.analytics||{},m=`flex items-center justify-end gap-1 rounded-md px-2 py-1 font-mono text-gray-800 hover:bg-muted-foreground/10 group-hover:text-foreground`;return(0,Z.jsxs)(B,{className:`group/card w-full lg:col-span-2`,"data-testid":`top-posts-card`,children:[(0,Z.jsxs)(I,{children:[(0,Z.jsxs)(R,{className:`flex items-baseline justify-between leading-snug font-medium text-muted-foreground`,children:[`Top posts `,P(r)]}),(0,Z.jsx)(z,{className:`hidden`,children:`Most viewed posts in this period`})]}),(0,Z.jsx)(L,{children:t?(0,Z.jsx)(oe,{className:`mt-6`}):(0,Z.jsxs)(Z.Fragment,{children:[e?.stats?.map(e=>(0,Z.jsxs)(`div`,{className:`group relative flex w-full items-start justify-between gap-5 border-t border-border/50 py-4 before:absolute before:-inset-x-4 before:inset-y-0 before:z-0 before:hidden before:rounded-md before:bg-table-row-hover before:content-[""] first:border-border! hover:cursor-pointer hover:border-transparent hover:before:block md:items-center [&+div]:hover:border-transparent`,children:[(0,Z.jsxs)(`div`,{className:`z-10 flex min-w-[160px] grow items-start gap-4 md:items-center lg:min-w-[320px]`,onClick:()=>{n(Y({postId:e.post_id,hasEmailData:e.sent_count!==null,analytics:{webAnalytics:s,membersTrackSources:c}}),{crossApp:!0})},children:[e.feature_image?(0,Z.jsx)(`div`,{className:`hidden aspect-[16/10] w-[80px] shrink-0 rounded-sm bg-cover bg-center sm:visible! sm:block! lg:w-[100px]`,style:{backgroundImage:`url(${e.feature_image})`}}):(0,Z.jsx)(Ce,{className:`hidden aspect-[16/10] w-[80px] shrink-0 group-hover:bg-muted-foreground/10 sm:visible! sm:flex! lg:w-[100px]`}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,Z.jsx)(`span`,{className:`line-clamp-2 text-md font-semibold`,children:e.title}),(0,Z.jsxs)(`span`,{className:`text text-muted-foreground`,children:[`By `,e.authors,` – `,T(e.published_at,o)]}),(0,Z.jsx)(`span`,{className:`text text-muted-foreground`,children:l(e)})]})]}),(0,Z.jsxs)(`div`,{className:`z-10 flex flex-col items-end justify-center gap-0.5 text-sm md:flex-row md:items-center md:justify-end md:gap-3`,children:[s&&(0,Z.jsxs)(`div`,{className:`group/tooltip relative flex w-[66px] lg:w-[92px]`,"data-testid":`statistics-visitors`,onClick:t=>{t.stopPropagation(),n(`/posts/analytics/${e.post_id}/web`,{crossApp:!0})},children:[(0,Z.jsx)($,{metrics:[{icon:(0,Z.jsx)(h,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Unique visitors`,metric:_(e.views)}],title:`Web traffic`}),(0,Z.jsxs)(`div`,{className:m,children:[(0,Z.jsx)(h,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),S(e.views)]})]}),e.sent_count!==null&&(0,Z.jsxs)(`div`,{className:`group/tooltip relative flex w-[66px] lg:w-[92px]`,onClick:t=>{t.stopPropagation(),n(`/posts/analytics/${e.post_id}/newsletter`,{crossApp:!0})},children:[(0,Z.jsx)($,{className:`${c?``:`right-0 left-auto translate-x-0`}`,metrics:[{icon:(0,Z.jsx)(j,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Sent`,metric:_(e.sent_count||0)},...p?[{icon:(0,Z.jsx)(f,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Opens`,metric:_(e.opened_count||0)}]:[],...u?[{icon:(0,Z.jsx)(A,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Clicks`,metric:_(e.clicked_count||0)}]:[]],title:`Newsletter performance`}),(0,Z.jsx)(`div`,{className:m,children:p?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(f,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),e.open_rate?`${Math.round(e.open_rate)}%`:`0%`]}):u?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(A,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),e.click_rate?`${Math.round(e.click_rate)}%`:`0%`]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(j,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),S(e.sent_count||0)]})})]}),c&&(0,Z.jsxs)(`div`,{className:`group/tooltip relative flex w-[66px] lg:w-[92px]`,"data-testid":`statistics-members`,onClick:t=>{t.stopPropagation(),n(`/posts/analytics/${e.post_id}/growth`,{crossApp:!0})},children:[(0,Z.jsx)($,{className:`right-0 left-auto translate-x-0`,metrics:[{icon:(0,Z.jsx)(y,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Free`,metric:e.free_members>0?`+${_(e.free_members)}`:`0`},...a?.paidMembersEnabled?[{icon:(0,Z.jsx)(C,{className:`shrink-0 text-muted-foreground`,size:16,strokeWidth:1.5}),label:`Paid`,metric:e.paid_members>0?`+${_(e.paid_members)}`:`0`}]:[]],title:`New members`}),(0,Z.jsxs)(`div`,{className:m,children:[(0,Z.jsx)(w,{className:`text-muted-foreground group-hover:text-foreground`,size:16,strokeWidth:1.5}),e.members>0?`+${_(e.members)}`:`0`]})]})]})]},e.post_id)),(!e?.stats||e.stats.length===0)&&(0,Z.jsx)(V,{className:`w-full pb-10`,title:`No posts ${P(r)}`,children:(0,Z.jsx)(x,{strokeWidth:1.5})})]})})]})},Te=({className:e,title:t,description:n,url:r,children:i})=>(0,Z.jsx)(`a`,{className:k(`group/card block rounded-xl border bg-card p-6 transition-all hover:bg-table-row-hover hover:shadow-xs`,e),href:r,rel:`noreferrer`,target:`_blank`,children:(0,Z.jsxs)(`div`,{className:`flex items-center gap-6`,children:[i,(0,Z.jsxs)(`div`,{className:`flex flex-col gap-0.5 leading-tight`,children:[(0,Z.jsx)(`span`,{className:`text-base font-semibold`,children:t}),(0,Z.jsx)(`span`,{className:`text-sm font-normal text-gray-700`,children:n})]})]})}),Ee=()=>{let{appSettings:e}=H(),{range:t}=q(),{statsConfig:n,isLoading:o}=J(),{startDate:s,endDate:c,timezone:l}=re(t),{isLoading:u,chartData:d,totals:f,currencySymbol:p}=fe(t),{data:m,isLoading:g}=ve(),{data:v,isLoading:y}=i({searchParams:{date_from:G(s),date_to:G(c),limit:`5`,timezone:l}}),{data:b,loading:x}=r({endpoint:`api_kpis`,statsConfig:n,params:{site_uuid:n?.id||``,date_from:G(s),date_to:G(c),timezone:l,member_status:ge(se)}}),S=(0,X.useMemo)(()=>N(b||[],t,`visits`,`sum`)?.map(e=>{let t=Number(e.visits),n=isNaN(t)?0:t;return{date:String(e.date),value:n,formattedValue:_(n),label:`Visitors`}}),[b,t]),te=(0,X.useMemo)(()=>F(t,b||[],{fieldName:`visits`}),[b,t]),C=(0,X.useMemo)(()=>{let e=[0,1];if(!S||S.length===0)return e;let t=S.map(e=>e.value).filter(e=>e>=0);return t.length===0?e:[0,Math.max(...t)||e[1]]},[S]),w=(0,X.useMemo)(()=>F(t,d||[]),[d,t]),T=(0,X.useMemo)(()=>{if(!d||d.length===0)return[];let e=[];return e=N(d,t,`value`,`exact`),e.map(e=>({date:e.date,value:e.free+e.paid,formattedValue:_(e.free+e.paid),label:`Members`}))},[d,t]),E=(0,X.useMemo)(()=>{if(!e?.paidMembersEnabled||!d||d.length===0)return[];let n=[];return n=N(d,t,`mrr`,`exact`),n.map(e=>({date:e.date,value:W(e.mrr),formattedValue:`${p}${_(W(e.mrr))}`,label:`MRR`}))},[d,t,p,e]),D=(0,X.useMemo)(()=>b?.length?{visits:_(b.reduce((e,t)=>{let n=Number(t.visits);return e+(isNaN(n)?0:n)},0))}:{visits:`0`},[b]);return(0,Z.jsxs)(le,{children:[(0,Z.jsx)(ue,{children:(0,Z.jsx)(a,{children:(0,Z.jsx)(ce,{excludeRanges:[`today`]})})}),(0,Z.jsxs)(de,{isLoading:o,loadingComponent:(0,Z.jsx)(Z.Fragment,{}),children:[(0,Z.jsx)(Se,{currencySymbol:p,growthChartRange:w,growthTotals:f,isLoading:x||u,kpiValues:D,membersChartData:T,mrrChartData:E,visitorsChartData:S,visitorsChartRange:te,visitorsYRange:C}),(0,Z.jsx)(be,{isLoading:g,latestPostStats:m}),(0,Z.jsx)(we,{isLoading:y,topPostsData:v}),(0,Z.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 lg:grid-cols-2`,children:[(0,Z.jsx)(ie,{className:`mt-4 -mb-4 lg:col-span-2`,children:`Grow your audience`}),(0,Z.jsx)(Te,{description:`Find out how to review the performance of your content and get the most out of post analytics in Ghost.`,title:`Understanding analytics in Ghost`,url:`https://ghost.org/help/native-analytics`,children:(0,Z.jsx)(`div`,{className:`flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md bg-gradient-to-tr from-[#14B8FF]/20 to-[#00BBA7]/20 p-4 opacity-80 transition-all group-hover/card:opacity-100`,children:(0,Z.jsx)(ee,{className:`text-[#00BBA7]`,size:20,strokeWidth:1.5})})}),(0,Z.jsx)(Te,{description:`Use these content distribution tactics to get more people to discover your work and increase engagement.`,title:`How to get your content seen online`,url:`https://ghost.org/resources/content-distribution/`,children:(0,Z.jsx)(`div`,{className:`flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md bg-gradient-to-tl from-[#FDC700]/20 to-[#FF2056]/20 p-4 opacity-80 transition-all group-hover/card:opacity-100`,children:(0,Z.jsx)(h,{className:`text-[#FE9A00]`,size:20,strokeWidth:1.5})})})]})]})]})};export{Ee as default};
|