ghost 6.58.0 → 6.59.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/tryghost-adapter-base-scheduling-0.2.2.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.2.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.2.0.tgz +0 -0
- package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
- package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
- package/content/themes/casper/.github/workflows/test.yml +11 -1
- package/content/themes/casper/AGENTS.md +25 -0
- package/content/themes/casper/assets/built/screen.css +1 -1
- package/content/themes/casper/assets/css/screen.css +15 -1
- package/content/themes/casper/gulpfile.js +3 -0
- package/content/themes/casper/package.json +8 -8
- package/content/themes/source/.gitattributes +5 -0
- package/content/themes/source/.github/workflows/test.yml +39 -0
- package/content/themes/source/AGENTS.md +25 -0
- package/content/themes/source/README.md +33 -4
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/css/screen.css +15 -0
- package/content/themes/source/gulpfile.js +6 -3
- package/content/themes/source/package.json +13 -10
- package/content/themes/source/pnpm-workspace.yaml +3 -0
- package/core/boot.js +11 -4
- package/core/built/admin/assets/Combination-BCm9FL4o.js +41 -0
- package/core/built/admin/assets/about-BdSCpjXG.js +1 -0
- package/core/built/admin/assets/account-migration-BpKAqo8k.js +1 -0
- package/core/built/admin/assets/activitypub/{account-migration-BpDeIF3G.js → account-migration-DVnYS1XG.js} +8 -8
- package/core/built/admin/assets/activitypub/activitypub.js +2 -2
- package/core/built/admin/assets/activitypub/{bluesky-sharing-aPMtrS3L.js → bluesky-sharing-DLVeE9ii.js} +31 -31
- package/core/built/admin/assets/activitypub/{content-formatters-BORfuA9G.js → content-formatters-DCsVic-t.js} +2 -2
- package/core/built/admin/assets/activitypub/{dist-ByFmDSNP2.js → dist-ByFmDSNP.js} +1 -1
- package/core/built/admin/assets/activitypub/{domain-CPdiB27_.js → domain-rrvDLfnK.js} +8 -8
- package/core/built/admin/assets/activitypub/{edit-profile-BY2PawIe.js → edit-profile-VT-piVxq.js} +23 -23
- package/core/built/admin/assets/activitypub/{explore-Sp9bgAwq.js → explore-DZg3m48P.js} +14 -14
- package/core/built/admin/assets/activitypub/{feed-BjtF4ohL.js → feed-BJqQvDMI.js} +41 -41
- package/core/built/admin/assets/activitypub/{field-BDOYVTg6.js → field-BezS4-1J.js} +2 -2
- package/core/built/admin/assets/activitypub/inbox-Uf0GVrI_.js +1284 -0
- package/core/built/admin/assets/activitypub/{label-1jhN-qhD.js → label-CZ6if4zK.js} +2 -2
- package/core/built/admin/assets/activitypub/layout-DNuYT4Gu.js +1 -0
- package/core/built/admin/assets/activitypub/moderation-CP6mDVky.js +340 -0
- package/core/built/admin/assets/activitypub/{note-nr_m_5yb.js → note-BlFkye2g.js} +16 -16
- package/core/built/admin/assets/activitypub/{notifications-BdcyivbT.js → notifications-GGTrGEdu.js} +163 -126
- package/core/built/admin/assets/activitypub/{preferences-CNqy1x9C.js → preferences-CjZXrZqr.js} +1550 -1551
- package/core/built/admin/assets/activitypub/{profile-DlY4rhbO.js → profile-CcXYxydm.js} +248 -248
- package/core/built/admin/assets/activitypub/{routes-CEHdEZzS.js → routes-nHCKlZl-.js} +1971 -1747
- package/core/built/admin/assets/activitypub/settings-pDzybcb3.js +315 -0
- package/core/built/admin/assets/activitypub/{site-CtBUCPBz.js → site-BZF0F8LN.js} +101 -101
- package/core/built/admin/assets/activitypub/{step-1-D9jGWyAy.js → step-1-C-Ns1Tfg.js} +3 -3
- package/core/built/admin/assets/activitypub/{step-3-KpUqpGWi.js → step-3-rDMNGmLg.js} +8 -8
- package/core/built/admin/assets/activitypub/{tabs-DvlsxTCI.js → tabs-CDjh3_Jp.js} +198 -198
- package/core/built/admin/assets/activitypub/{topic-filter-CIN1E2jg.js → topic-filter-CmTc8hpN.js} +2 -2
- package/core/built/admin/assets/activitypub/{use-activity-pub-queries-CATFd6YV.js → use-activity-pub-queries-DUDEdSdR.js} +286 -243
- package/core/built/admin/assets/activitypub/{use-reply-chain-data-DJ0vhA8V.js → use-reply-chain-data-TunGtmJl.js} +14 -14
- package/core/built/admin/assets/add-integration-modal-CXRQi1x0.js +1 -0
- package/core/built/admin/assets/add-newsletter-modal-t447KRYz.js +1 -0
- package/core/built/admin/assets/add-recommendation-modal-D882MdnR.js +1 -0
- package/core/built/admin/assets/{analytics-BC2oR8ay.js → analytics-Dj-WlzPf.js} +1 -1
- package/core/built/admin/assets/announcement-bar-modal-CwHKKw-a.js +1 -0
- package/core/built/admin/assets/api-keys-Boy5pLbD.js +1 -0
- package/core/built/admin/assets/audience-Cc40y7zQ.js +1 -0
- package/core/built/admin/assets/automations-DNLK5Udr.js +1 -0
- package/core/built/admin/assets/bluesky-sharing-Cm4aFaOl.js +1 -0
- package/core/built/admin/assets/breadcrumb-CcFr_ltt.js +1 -0
- package/core/built/admin/assets/button-BshWPHvn.js +1 -0
- package/core/built/admin/assets/chart-helpers-BsbzoWhK.js +1 -0
- package/core/built/admin/assets/{checkbox-LmClhqcS.js → checkbox-1G6KfK2q.js} +1 -1
- package/core/built/admin/assets/chunk-KS7C4IRE-DCsL4i4D.js +4 -0
- package/core/built/admin/assets/{chunk.408.1a258af360eb8d905508.js → chunk.301.5673a0caf7c49bb00212.js} +3 -3
- package/core/built/admin/assets/{chunk.524.4c693c3a00ac91df34fa.js → chunk.524.86db0d945468c852374b.js} +4 -4
- package/core/built/admin/assets/{chunk.582.20b600e329e58d12d7c2.js → chunk.582.c2f6216d3c4af303e236.js} +6 -6
- package/core/built/admin/assets/{code-editor-view-DqTOUnbM.js → code-editor-view-BVjtWyst.js} +1 -1
- package/core/built/admin/assets/{code-editor-view-bA0lfxUL.js → code-editor-view-y_zVfmCa.js} +1 -1
- package/core/built/admin/assets/color-picker-XEMPgNJE.js +3 -0
- package/core/built/admin/assets/{color-picker-field-Cv9GOJQZ.js → color-picker-field-BhplXcy5.js} +1 -1
- package/core/built/admin/assets/combobox-CRMJrvcQ.js +1 -0
- package/core/built/admin/assets/command-151T2eRx.js +1 -0
- package/core/built/admin/assets/comments-Bjbl9toF.js +1 -0
- package/core/built/admin/assets/confirmation-context-QmFxSjWy.js +1 -0
- package/core/built/admin/assets/{content-api-modal-BOFWRUkC.js → content-api-modal-CpeABXne.js} +1 -1
- package/core/built/admin/assets/{copy-field-8biQvNMD.js → copy-field-CglgRZyG.js} +1 -1
- package/core/built/admin/assets/custom-field-type-option-DSyJw4T4.js +1 -0
- package/core/built/admin/assets/custom-integration-modal-DWB9bRVp.js +1 -0
- package/core/built/admin/assets/date-range-select-kaKtab5O.js +1 -0
- package/core/built/admin/assets/design-and-theme-modal-86s2AaZ-.js +23 -0
- package/core/built/admin/assets/dirty-confirm-dialog-CTFdXXy7.js +1 -0
- package/core/built/admin/assets/disabled-sources-indicator-BFyCxUOx.js +1 -0
- package/core/built/admin/assets/dist-C1-Oy3Db.js +1 -0
- package/core/built/admin/assets/dist-CJJqYPep.js +1 -0
- package/core/built/admin/assets/dist-CNlMj7ML.js +1 -0
- package/core/built/admin/assets/dist-Kll2twSG.js +1 -0
- package/core/built/admin/assets/domain-BOoMvBG3.js +1 -0
- package/core/built/admin/assets/{dropzone-B21Entqz.js → dropzone-B6KWzsrb.js} +2 -2
- package/core/built/admin/assets/edit-profile-BagrYOrN.js +1 -0
- package/core/built/admin/assets/editor-AaJjqbpk.js +8 -0
- package/core/built/admin/assets/embed-signup-form-modal-B8L95KwR.js +8 -0
- package/core/built/admin/assets/explore-xbykZTlO.js +1 -0
- package/core/built/admin/assets/feed-BAHSipWv.js +1 -0
- package/core/built/admin/assets/{field-BQqLTgHM.js → field-kJYZ2T3C.js} +1 -1
- package/core/built/admin/assets/{filter-sources-FgqoUIL7.js → filter-sources-QeqFGNRB.js} +1 -1
- package/core/built/admin/assets/{filters-D0uIMD8n.js → filters-By5KQeV6.js} +1 -1
- package/core/built/admin/assets/filters-DtYpAkDd.js +1 -0
- package/core/built/admin/assets/first-promoter-modal-8A02oyjA.js +1 -0
- package/core/built/admin/assets/{ghost-ba408063a5922b458b4a8f216cf23251.js → ghost-f110822e67868c9fdf9a6c23754b2559.js} +9 -8
- package/core/built/admin/assets/gift-link-modal-DbYCyuhF.js +1 -0
- package/core/built/admin/assets/global-data-context-gAMDH9u1.js +1 -0
- package/core/built/admin/assets/growth-BSOxJGey.js +3 -0
- package/core/built/admin/assets/growth-BZTjURq5.js +1 -0
- package/core/built/admin/assets/history-modal-CCgWtlZE.js +1 -0
- package/core/built/admin/assets/html-field-BQC7XyLA.js +1 -0
- package/core/built/admin/assets/iframe-buffering-DnOlWTD4.js +1 -0
- package/core/built/admin/assets/{images-3cQgwfTD.js → images-D5UKr2SG.js} +1 -1
- package/core/built/admin/assets/{inbox-Dz_JblyJ.js → inbox-DvN15_YH.js} +45 -39
- package/core/built/admin/assets/index-BJz9Zlsc.js +67 -0
- package/core/built/admin/assets/index-Dg8cdR8E.css +1 -0
- package/core/built/admin/assets/{input-group-DpogNUIt.js → input-group-BPAxETpQ.js} +1 -1
- package/core/built/admin/assets/invite-user-modal-jcUaaNkW.js +1 -0
- package/core/built/admin/assets/{koenig-lexical-2KuqRwZI.js → koenig-lexical-CfXTYeli.js} +1 -1
- package/core/built/admin/assets/koenig-loader-DktFM3Uh.js +1 -0
- package/core/built/admin/assets/{kpi-card-Ck3tT2Wg.js → kpi-card-fUHZlzBX.js} +1 -1
- package/core/built/admin/assets/{kpi-card-DDIxptaS.js → kpi-card-o0urVtNL.js} +1 -1
- package/core/built/admin/assets/kpi-helpers-2FTF4a3-.js +1 -0
- package/core/built/admin/assets/kpi-tabs-B8-_k2dQ.js +1 -0
- package/core/built/admin/assets/{label-DodDsMzn.js → label-CiRS3i_f.js} +1 -1
- package/core/built/admin/assets/label-picker-ao7tuPaK.js +1 -0
- package/core/built/admin/assets/layout-DC6QGDaw.js +1 -0
- package/core/built/admin/assets/member-custom-fields-BW756-EV.js +1 -0
- package/core/built/admin/assets/member-detail-CGGgUTSl.js +1 -0
- package/core/built/admin/assets/members-ZcPthwG0.js +11 -0
- package/core/built/admin/assets/moderation-24bElWs3.js +1 -0
- package/core/built/admin/assets/multi-select-combobox-CZPrgz-Z.js +1 -0
- package/core/built/admin/assets/navigation-modal-BiTP4U_J.js +1 -0
- package/core/built/admin/assets/newsletter-B3Ihwizp.js +1 -0
- package/core/built/admin/assets/newsletter-detail-modal-CYsu4qhl.js +1 -0
- package/core/built/admin/assets/newsletter-emails-CDPR4-SP.js +1 -0
- package/core/built/admin/assets/newsletters-bJiYLJWl.js +1 -0
- package/core/built/admin/assets/note-7f6urVVA.js +1 -0
- package/core/built/admin/assets/notifications-rosQCyXH.js +1 -0
- package/core/built/admin/assets/offers-container-modal-J2j6NpDL.js +1 -0
- package/core/built/admin/assets/onboarding-route-DTjcThKl.js +1 -0
- package/core/built/admin/assets/overview-BxvWzGaf.js +1 -0
- package/core/built/admin/assets/overview-D6JG0hkZ.js +1 -0
- package/core/built/admin/assets/{page-header-VLPJfj_d.js → page-header-l7vXmLIw.js} +1 -1
- package/core/built/admin/assets/pintura-modal-BGHmudVB.js +1 -0
- package/core/built/admin/assets/portal-frame-DVc4VHX_.js +1 -0
- package/core/built/admin/assets/portal-modal-BCOcdiRi.js +1 -0
- package/core/built/admin/assets/{post-analytics-Gv81eN_g.js → post-analytics-CTSZMK6I.js} +1 -1
- package/core/built/admin/assets/post-analytics-header-Dt4RQGq0.js +1 -0
- package/core/built/admin/assets/{post-analytics-provider-O2YjZMhN.js → post-analytics-provider-C4ydiboO.js} +1 -1
- package/core/built/admin/assets/post-share-modal-DjH_a_1L.js +1 -0
- package/core/built/admin/assets/preferences-BLo6VJUS.js +5 -0
- package/core/built/admin/assets/preview-modal-BOgjgsJL.js +1 -0
- package/core/built/admin/assets/profile-DG6iCdRH.js +1 -0
- package/core/built/admin/assets/radio-group-ChHD4EQJ.js +1 -0
- package/core/built/admin/assets/router-provider-Bexg1t-V.js +1 -0
- package/core/built/admin/assets/select-ChxknEcT.js +1 -0
- package/core/built/admin/assets/settings-B0VDAhgV.js +1 -0
- package/core/built/admin/assets/settings-Dwo3CeAD.js +4 -0
- package/core/built/admin/assets/settings-breadcrumbs-sLDNedBW.js +1 -0
- package/core/built/admin/assets/share-modal-BDb2nacg.js +1 -0
- package/core/built/admin/assets/skeleton-D7hwjdry.js +1 -0
- package/core/built/admin/assets/slack-modal-CwNAD69x.js +1 -0
- package/core/built/admin/assets/sort-button-DhqpxkrO.js +1 -0
- package/core/built/admin/assets/source-icon-BPsD5ees.js +1 -0
- package/core/built/admin/assets/stats-WdDJ8c_1.js +1 -0
- package/core/built/admin/assets/stats-view-J3PI2eT_.js +1 -0
- package/core/built/admin/assets/step-1-2q1SjerQ.js +1 -0
- package/core/built/admin/assets/step-2-D5mJB3Uu.js +1 -0
- package/core/built/admin/assets/step-3-BpAuYTGZ.js +2 -0
- package/core/built/admin/assets/{stripe-button-Bh4p6Wud.js → stripe-button-DDoUKN5a.js} +1 -1
- package/core/built/admin/assets/stripe-connect-modal-pMdF3t4S.js +1 -0
- package/core/built/admin/assets/switch-B_1yU3Aw.js +1 -0
- package/core/built/admin/assets/{table-DghJxZMH.js → table-CrqQtkR2.js} +1 -1
- package/core/built/admin/assets/tabs-BhzVdh5p.js +1 -0
- package/core/built/admin/assets/tag-detail-CwJhI4qg.js +2 -0
- package/core/built/admin/assets/tags-CvJ0PgrB.js +1 -0
- package/core/built/admin/assets/testimonials-modal-CV82IAnI.js +1 -0
- package/core/built/admin/assets/tier-detail-modal-pLzCOfeg.js +1 -0
- package/core/built/admin/assets/toggle-group-BW_T4yn6.js +1 -0
- package/core/built/admin/assets/topic-filter-DkXjDejV.js +1 -0
- package/core/built/admin/assets/transistor-modal-TMRvHZ6B.js +1 -0
- package/core/built/admin/assets/unsplash-modal-CV92RdPw.js +1 -0
- package/core/built/admin/assets/{use-analytics-data-IxJcSjc9.js → use-analytics-data-BM_uV9SU.js} +1 -1
- package/core/built/admin/assets/use-check-theme-limit-error-DkBnXMSY.js +1 -0
- package/core/built/admin/assets/use-confirm-unload-SzlkOIpm.js +1 -0
- package/core/built/admin/assets/use-feature-flag-cahOlMva.js +1 -0
- package/core/built/admin/assets/use-filter-params-BX5qf0Cg.js +1 -0
- package/core/built/admin/assets/{use-growth-stats-1NW-8eEZ.js → use-growth-stats-D0LlWBe6.js} +1 -1
- package/core/built/admin/assets/{use-hash-link-navigation-guard-B9j6HIrV.js → use-hash-link-navigation-guard-B_Y3FhYH.js} +1 -1
- package/core/built/admin/assets/use-limiter-D3DHSoAj.js +2 -0
- package/core/built/admin/assets/{use-pintura-config-BjFChXV1.js → use-pintura-config-D63Xu0SG.js} +1 -1
- package/core/built/admin/assets/use-pintura-editor-Z51aFnC8.js +1 -0
- package/core/built/admin/assets/{use-post-referrers-Dp1BnTAK.js → use-post-referrers-Cvymr3gt.js} +1 -1
- package/core/built/admin/assets/use-query-params-BfzuqbcD.js +1 -0
- package/core/built/admin/assets/use-reply-chain-data-Dc18Ujqo.js +1 -0
- package/core/built/admin/assets/use-setting-group-DYRIzqC0.js +1 -0
- package/core/built/admin/assets/use-settings-navigation-aDSLtmEl.js +1 -0
- package/core/built/admin/assets/{use-simple-pagination-DsEGSJhe.js → use-simple-pagination-B2TdNX67.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-query-Ci_DiPkX.js → use-tinybird-query-BvQIVuRc.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-token-CsUwc722.js → use-tinybird-token-COQTPIwL.js} +1 -1
- package/core/built/admin/assets/use-upgrade-route-BZf1g59m.js +1 -0
- package/core/built/admin/assets/{use-url-input-BEZJpVgN.js → use-url-input-PcqZadXa.js} +1 -1
- package/core/built/admin/assets/user-detail-modal-DeO3SAZq.js +1 -0
- package/core/built/admin/assets/{virtual-list-D5ugXyZY.js → virtual-list-D3MfPNOh.js} +1 -1
- package/core/built/admin/assets/web-CDdyG7z1.js +2 -0
- package/core/built/admin/assets/web-CwQ8_QUc.js +1 -0
- package/core/built/admin/assets/zapier-modal-a7t75iNI.js +1 -0
- package/core/built/admin/index.html +15 -12
- package/core/frontend/apps/private-blogging/lib/helpers/input_password.js +2 -1
- package/core/frontend/helpers/body_class.js +2 -1
- package/core/frontend/helpers/cancel_link.js +2 -1
- package/core/frontend/helpers/color_to_rgba.js +2 -1
- package/core/frontend/helpers/content_api_key.js +2 -1
- package/core/frontend/helpers/content_api_url.js +2 -1
- package/core/frontend/helpers/contrast_text_color.js +2 -1
- package/core/frontend/helpers/facebook_url.js +2 -1
- package/core/frontend/helpers/ghost_foot.js +2 -1
- package/core/frontend/helpers/ghost_head.js +2 -1
- package/core/frontend/helpers/has.js +4 -2
- package/core/frontend/helpers/link_class.js +2 -1
- package/core/frontend/helpers/meta_description.js +2 -1
- package/core/frontend/helpers/meta_title.js +2 -1
- package/core/frontend/helpers/navigation.js +113 -22
- package/core/frontend/helpers/page_url.js +2 -1
- package/core/frontend/helpers/post_class.js +2 -1
- package/core/frontend/helpers/reading_time.js +2 -1
- package/core/frontend/helpers/social_accounts.js +2 -1
- package/core/frontend/helpers/social_url.js +2 -1
- package/core/frontend/helpers/total_members.js +2 -1
- package/core/frontend/helpers/total_paid_members.js +2 -1
- package/core/frontend/helpers/tpl/navigation.hbs +1 -1
- package/core/frontend/helpers/twitter_url.js +2 -1
- package/core/frontend/public/cards.manifest.json +1 -1
- package/core/server/api/endpoints/posts.js +7 -4
- package/core/server/api/endpoints/utils/permissions.js +2 -1
- package/core/server/api/endpoints/utils/validators/input/settings.js +83 -1
- package/core/server/data/exporter/table-lists.js +1 -0
- package/core/server/data/importer/handlers/json.js +2 -1
- package/core/server/data/migrations/versions/5.19/2022-09-02-20-52-backfill-new-product-columns.js +2 -1
- package/core/server/data/migrations/versions/5.21/2022-10-26-04-50-member-subscription-created-batch-id.js +4 -2
- package/core/server/data/migrations/versions/5.22/2022-10-31-12-03-backfill-new-product-columns.js +2 -1
- package/core/server/data/migrations/versions/6.58/2026-08-11-21-22-48-rename-email-batches-provider-id.js +1 -1
- package/core/server/data/migrations/versions/6.59/2026-08-18-17-06-46-add-gift-delivery-fields-to-gifts.js +26 -0
- package/core/server/data/migrations/versions/6.59/2026-08-18-17-07-01-add-gift-deliveries.js +20 -0
- package/core/server/data/schema/commands.js +48 -24
- package/core/server/data/schema/schema.js +28 -7
- package/core/server/data/seeders/importers/automation-action-revisions-importer.js +3 -36
- package/core/server/data/seeders/importers/automation-actions-importer.js +5 -41
- package/core/server/data/seeders/importers/automation-run-steps-importer.js +3 -36
- package/core/server/data/seeders/importers/automation-runs-importer.js +7 -42
- package/core/server/data/seeders/importers/automations-importer.js +3 -36
- package/core/server/data/seeders/importers/comment-reports-importer.js +5 -5
- package/core/server/data/seeders/importers/comments-importer.js +5 -5
- package/core/server/data/seeders/importers/email-batches-importer.js +5 -4
- package/core/server/data/seeders/importers/email-recipients-importer.js +12 -20
- package/core/server/data/seeders/importers/emails-importer.js +6 -6
- package/core/server/data/seeders/importers/labels-importer.js +3 -3
- package/core/server/data/seeders/importers/members-click-events-importer.js +5 -5
- package/core/server/data/seeders/importers/members-created-events-importer.js +13 -12
- package/core/server/data/seeders/importers/members-feedback-importer.js +7 -7
- package/core/server/data/seeders/importers/members-importer.js +4 -4
- package/core/server/data/seeders/importers/members-login-events-importer.js +3 -3
- package/core/server/data/seeders/importers/members-products-importer.js +2 -2
- package/core/server/data/seeders/importers/members-status-events-importer.js +4 -3
- package/core/server/data/seeders/importers/members-stripe-customers-importer.js +2 -2
- package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +7 -7
- package/core/server/data/seeders/importers/members-subscribe-events-importer.js +3 -3
- package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +3 -3
- package/core/server/data/seeders/importers/offer-redemptions-importer.js +7 -7
- package/core/server/data/seeders/importers/offers-importer.js +3 -3
- package/core/server/data/seeders/importers/posts-importer.js +4 -4
- package/core/server/data/seeders/importers/table-importer.js +2 -35
- package/core/server/data/seeders/importers/tags-importer.js +2 -2
- package/core/server/data/seeders/importers/users-importer.js +2 -2
- package/core/server/data/seeders/importers/web-mentions-importer.js +2 -2
- package/core/server/data/seeders/utils/random.js +7 -0
- package/core/server/ghost-server.js +19 -5
- package/core/server/lib/db-date.js +72 -3
- package/core/server/models/gift-delivery.js +23 -0
- package/core/server/models/gift.js +9 -0
- package/core/server/models/index.js +3 -2
- package/core/server/models/settings.js +43 -4
- package/core/server/services/automations/database-automations-repository.js +38 -31
- package/core/server/services/automations/poll.js +1 -1
- package/core/server/services/content-import/csv/index.js +8 -0
- package/core/server/services/content-import/csv/parse.js +60 -0
- package/core/server/services/content-import/import/importer.js +222 -0
- package/core/server/services/content-import/import/post-data.js +52 -0
- package/core/server/services/content-import/import/reader.js +15 -0
- package/core/server/services/content-import/import/row.js +50 -0
- package/core/server/services/content-import/import/store.js +71 -0
- package/core/server/services/content-import/index.js +67 -0
- package/core/server/services/email-analytics/automation-email-analytics-batch-processor.js +1 -1
- package/core/server/services/email-analytics/index.js +3 -1
- package/core/server/services/email-analytics/jobs/index.js +2 -2
- package/core/server/services/email-service/email-service-wrapper.js +1 -1
- package/core/server/services/email-suppression-list/email-suppression-list.js +4 -2
- package/core/server/services/gifts/CONTEXT.md +27 -3
- package/core/server/services/gifts/README.md +8 -4
- package/core/server/services/gifts/constants.js +2 -1
- package/core/server/services/gifts/email-templates/gift-delivery.hbs +20 -0
- package/core/server/services/gifts/email-templates/gift-delivery.js +39 -0
- package/core/server/services/gifts/email-templates/gift-purchase-confirmation.hbs +2 -2
- package/core/server/services/gifts/email-templates/gift-purchase-confirmation.js +19 -4
- package/core/server/services/gifts/events/send-gift-delivery-event.js +15 -0
- package/core/server/services/gifts/gift-bookshelf-repository.js +23 -3
- package/core/server/services/gifts/gift-checkout-adapter.js +5 -3
- package/core/server/services/gifts/gift-codec.js +8 -0
- package/core/server/services/gifts/gift-delivery-bookshelf-repository.js +107 -0
- package/core/server/services/gifts/gift-delivery-codec.js +12 -0
- package/core/server/services/gifts/gift-delivery-schema.js +15 -0
- package/core/server/services/gifts/gift-delivery-service.js +209 -0
- package/core/server/services/gifts/gift-email-renderer.js +13 -1
- package/core/server/services/gifts/gift-email-service.js +97 -17
- package/core/server/services/gifts/gift-schema.js +10 -6
- package/core/server/services/gifts/gift-service.js +259 -34
- package/core/server/services/gifts/gift.js +59 -5
- package/core/server/services/gifts/index.js +69 -3
- package/core/server/services/lib/mailgun-client.js +5 -2
- package/core/server/services/mail/ghost-mailer.js +9 -1
- package/core/server/services/member-welcome-emails/service.js +6 -1
- package/core/server/services/members/members-api/controllers/router-controller.js +26 -8
- package/core/server/services/stripe/services/webhook/checkout-session-event-service.js +100 -12
- package/core/server/services/stripe/stripe-api.js +3 -2
- package/core/server/services/stripe/webhook-controller.js +6 -3
- package/core/server/services/stripe/webhook-manager.js +2 -0
- package/core/shared/labs.js +1 -0
- package/package.json +9 -8
- package/pnpm-lock.yaml +26 -11
- package/pnpm-workspace.yaml +5 -6
- package/content/themes/source/yarn.lock +0 -6232
- package/core/built/admin/assets/Combination-BDvCdg1t.js +0 -41
- package/core/built/admin/assets/about-B_BvSyLF.js +0 -1
- package/core/built/admin/assets/account-migration-oJUGxnzT.js +0 -1
- package/core/built/admin/assets/activitypub/dist-Dqggkccr.js +0 -215
- package/core/built/admin/assets/activitypub/inbox-z1o2j1Tb.js +0 -1221
- package/core/built/admin/assets/activitypub/layout-BRMezuty.js +0 -1
- package/core/built/admin/assets/activitypub/moderation-CZudJi8N.js +0 -160
- package/core/built/admin/assets/activitypub/settings-CrSV1cux.js +0 -107
- package/core/built/admin/assets/add-integration-modal-BW23PDYs.js +0 -1
- package/core/built/admin/assets/add-newsletter-modal-M0ls8BKO.js +0 -1
- package/core/built/admin/assets/add-recommendation-modal-B0NeBMzl.js +0 -1
- package/core/built/admin/assets/announcement-bar-modal-pXBqjQE_.js +0 -1
- package/core/built/admin/assets/api-keys-Df6uv1dT.js +0 -1
- package/core/built/admin/assets/audience-BY8od8If.js +0 -1
- package/core/built/admin/assets/automations-DCs6Wady.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-D0P42Cws.js +0 -1
- package/core/built/admin/assets/breadcrumb-MTj_cKLb.js +0 -1
- package/core/built/admin/assets/chart-helpers-DcO3k_vA.js +0 -1
- package/core/built/admin/assets/chunk-KS7C4IRE-DG9HTHQ3.js +0 -4
- package/core/built/admin/assets/color-picker-CBlJMv3y.js +0 -3
- package/core/built/admin/assets/combobox-BbPJzjCp.js +0 -1
- package/core/built/admin/assets/command-BrhXIlDr.js +0 -1
- package/core/built/admin/assets/comments-Cu4rD1aJ.js +0 -1
- package/core/built/admin/assets/confirmation-provider-BEdrnHns.js +0 -1
- package/core/built/admin/assets/custom-field-type-option-CNhAgHbJ.js +0 -1
- package/core/built/admin/assets/custom-integration-modal-CrGOI8IB.js +0 -1
- package/core/built/admin/assets/date-range-select-Bsh4gIek.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-DWZguwWX.js +0 -23
- package/core/built/admin/assets/dirty-confirm-dialog-DmdMpgyN.js +0 -1
- package/core/built/admin/assets/disabled-sources-indicator-BLnmyWgt.js +0 -1
- package/core/built/admin/assets/dist-DMFGvqqU.js +0 -1
- package/core/built/admin/assets/dist-DlCyLrOC.js +0 -1
- package/core/built/admin/assets/dist-j1xxxnY8.js +0 -1
- package/core/built/admin/assets/domain-Dp9TRrFp.js +0 -1
- package/core/built/admin/assets/edit-profile-DG6lpMsr.js +0 -1
- package/core/built/admin/assets/editor-CPQOrhrn.js +0 -8
- package/core/built/admin/assets/embed-signup-form-modal-CgWniDha.js +0 -9
- package/core/built/admin/assets/explore-C3rzONJv.js +0 -1
- package/core/built/admin/assets/feed-DpUwS1cU.js +0 -1
- package/core/built/admin/assets/filters-DZJT29GW.js +0 -1
- package/core/built/admin/assets/first-promoter-modal-DJhQQheG.js +0 -1
- package/core/built/admin/assets/gift-link-modal-sdFLjND9.js +0 -1
- package/core/built/admin/assets/global-data-provider-CixmTX00.js +0 -1
- package/core/built/admin/assets/growth-0YYkBEeS.js +0 -1
- package/core/built/admin/assets/growth-DpjAPeQT.js +0 -3
- package/core/built/admin/assets/history-modal-BWJ4-cJ0.js +0 -1
- package/core/built/admin/assets/html-field-C-oa5DEl.js +0 -1
- package/core/built/admin/assets/iframe-buffering-Ba9sDpi2.js +0 -1
- package/core/built/admin/assets/index-BOJzlYiz.js +0 -67
- package/core/built/admin/assets/index-Bid6LAyc.css +0 -1
- package/core/built/admin/assets/invite-user-modal-DCiQSiuD.js +0 -1
- package/core/built/admin/assets/koenig-editor-base-BApy8Q7C.js +0 -1
- package/core/built/admin/assets/kpi-helpers-ssbuy-hD.js +0 -1
- package/core/built/admin/assets/kpi-tabs-BqoIM6bI.js +0 -1
- package/core/built/admin/assets/label-picker-Cvvbmzb5.js +0 -1
- package/core/built/admin/assets/layout-DkkGyev2.js +0 -1
- package/core/built/admin/assets/member-custom-fields-CvGcpaiW.js +0 -1
- package/core/built/admin/assets/member-detail-CMCMZ47_.js +0 -1
- package/core/built/admin/assets/members-sRl6fNfq.js +0 -11
- package/core/built/admin/assets/moderation-KhKwGqI1.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-nhCff0_K.js +0 -1
- package/core/built/admin/assets/navigation-modal-MDJExWDJ.js +0 -1
- package/core/built/admin/assets/newsletter-BIBHumfV.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-CfjBMH3v.js +0 -1
- package/core/built/admin/assets/newsletter-emails-ClDL-7dA.js +0 -1
- package/core/built/admin/assets/newsletters-CBe-IPzK.js +0 -1
- package/core/built/admin/assets/note-HnNUOt4d.js +0 -1
- package/core/built/admin/assets/notifications-Cj5e-258.js +0 -1
- package/core/built/admin/assets/offers-container-modal-BHwHtixC.js +0 -1
- package/core/built/admin/assets/onboarding-route-D_4jp7Nq.js +0 -1
- package/core/built/admin/assets/overview-CezDdg-F.js +0 -1
- package/core/built/admin/assets/overview-D5mM51Lj.js +0 -1
- package/core/built/admin/assets/pintura-modal-BXXJ8Iaa.js +0 -1
- package/core/built/admin/assets/portal-frame-BLCvF8f-.js +0 -1
- package/core/built/admin/assets/portal-modal-DN80tAcy.js +0 -1
- package/core/built/admin/assets/post-analytics-header-_ydSY8qO.js +0 -1
- package/core/built/admin/assets/post-share-modal-CzYak_a5.js +0 -1
- package/core/built/admin/assets/preferences-gneLb6LV.js +0 -5
- package/core/built/admin/assets/preview-modal-Bkq-tgVm.js +0 -1
- package/core/built/admin/assets/profile-CzXmCNTC.js +0 -1
- package/core/built/admin/assets/radio-group-Dsq5ZEbV.js +0 -1
- package/core/built/admin/assets/router-provider-CkB_ArLF.js +0 -1
- package/core/built/admin/assets/select-xuZAuDyS.js +0 -1
- package/core/built/admin/assets/settings-Ct8pabhr.js +0 -1
- package/core/built/admin/assets/settings-KSWWQanQ.js +0 -4
- package/core/built/admin/assets/settings-breadcrumbs-DbPGu-Tu.js +0 -1
- package/core/built/admin/assets/share-modal-CdiUx9WM.js +0 -1
- package/core/built/admin/assets/slack-modal-BP--Z3jE.js +0 -1
- package/core/built/admin/assets/sort-button-CjfKdlsL.js +0 -1
- package/core/built/admin/assets/source-icon-DHj1h6Ts.js +0 -1
- package/core/built/admin/assets/stats-C615kulJ.js +0 -1
- package/core/built/admin/assets/stats-view-BSMRdYiN.js +0 -1
- package/core/built/admin/assets/step-1-pSdGYtIF.js +0 -1
- package/core/built/admin/assets/step-2-T9Uy4eBD.js +0 -1
- package/core/built/admin/assets/step-3-D4uXe_XG.js +0 -2
- package/core/built/admin/assets/stripe-connect-modal-C2vTvepi.js +0 -1
- package/core/built/admin/assets/switch-CE2NuMn-.js +0 -1
- package/core/built/admin/assets/tabs-l9c7FjzI.js +0 -1
- package/core/built/admin/assets/tag-detail-DBw_M2-p.js +0 -2
- package/core/built/admin/assets/tags-DoWsAG6l.js +0 -1
- package/core/built/admin/assets/testimonials-modal-BZKePE2T.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-D65pVWsN.js +0 -1
- package/core/built/admin/assets/toggle-group-uJnl42w3.js +0 -1
- package/core/built/admin/assets/topic-filter-BM7hz0kW.js +0 -1
- package/core/built/admin/assets/transistor-modal-VZOGN3od.js +0 -1
- package/core/built/admin/assets/unsplash-modal-CKGfACxF.js +0 -1
- package/core/built/admin/assets/use-check-theme-limit-error-CGp3CGT5.js +0 -1
- package/core/built/admin/assets/use-feature-flag-CSq2Lwzt.js +0 -1
- package/core/built/admin/assets/use-filter-params-0hcJJuEJ.js +0 -1
- package/core/built/admin/assets/use-limiter-ffwpsZPp.js +0 -2
- package/core/built/admin/assets/use-pintura-editor-Cb41oJyL.js +0 -1
- package/core/built/admin/assets/use-query-params-DHhhu8wi.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-C0ZUTkfk.js +0 -1
- package/core/built/admin/assets/use-setting-group-Bx8M6FL2.js +0 -1
- package/core/built/admin/assets/use-settings-navigation-BOZcat_V.js +0 -1
- package/core/built/admin/assets/use-upgrade-route-B3_DUiuT.js +0 -1
- package/core/built/admin/assets/user-detail-modal-595z1N5r.js +0 -1
- package/core/built/admin/assets/web-CAta3lRE.js +0 -1
- package/core/built/admin/assets/web-Ds9_wWJK.js +0 -2
- package/core/built/admin/assets/zapier-modal-CcfDZY53.js +0 -1
- package/core/server/data/seeders/utils/database-date.js +0 -28
- package/core/server/services/automations/database-date.js +0 -59
- /package/core/built/admin/assets/{dist-CqO2lWS02.js → dist-CqO2lWS0.js} +0 -0
- /package/core/server/services/{automations → lib}/mailgun-message-id.js +0 -0
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./limit-service-BhiEvqcP.js","./rolldown-runtime-DAXXjFlN.js","./_baseAssignValue-C_vooEQc.js","./luxon-D1RVjjpq.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{n,r,t as i}from"./hooks-CJepWnbB.js";import{n as a,t as o}from"./update-queries-C4CnvJaW.js";import{t as s}from"./preload-helper-DYl5dUZ5.js";import{f as c}from"./users-DmGMPfw7.js";import{C as l}from"./index-BOJzlYiz.js";import{r as u}from"./newsletters-ILsexy-5.js";import{n as d}from"./global-data-provider-CixmTX00.js";var f=`InvitesResponseType`,p=i({dataType:f,path:`/invites/`,permissions:[`Owner`,`Administrator`],defaultSearchParams:{limit:`100`,include:`roles`},defaultNextPageParams:(e,t)=>({...t,page:(e.meta?.pagination.next||1).toString()}),returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.invites),r=t[t.length-1].meta;return{invites:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),m=n({method:`POST`,path:()=>`/invites/`,body:({email:e,roleId:t})=>({invites:[{email:e,role_id:t,expires:null,status:null,token:null}]}),updateQueries:{dataType:f,emberUpdateType:`createOrUpdate`,update:a(`invites`)}}),h=n({path:e=>`/invites/${e}/`,method:`DELETE`,updateQueries:{dataType:f,emberUpdateType:`delete`,update:o(`invites`)}}),g=r({dataType:`RolesResponseType`,path:`/roles/`,defaultSearchParams:{limit:`100`}}),_=e(t(),1);function v(e,t){return e.filter(e=>e.roles.find(e=>e.name===t))}function y(e,t){return e.filter(e=>e.roles.find(e=>t.includes(e.name)))}function b(e){return v(e,`Owner`)[0]}var x=()=>{let{currentUser:e}=d(),{data:{users:t,meta:n,isEnd:r}={users:[]},isLoading:i,fetchNextPage:a}=c(),{data:{invites:o,meta:s,isEnd:l}={invites:[]},isLoading:u,fetchNextPage:f}=p(),{data:{roles:m}={},isLoading:h}=g(),x=(0,_.useMemo)(()=>b(t),[t]),S=(0,_.useMemo)(()=>v(t,`Administrator`),[t]),C=(0,_.useMemo)(()=>y(t,[`Editor`,`Super Editor`]),[t]),w=(0,_.useMemo)(()=>v(t,`Author`),[t]),T=(0,_.useMemo)(()=>v(t,`Contributor`),[t]),E=(0,_.useMemo)(()=>o.map(e=>{let t=m?.find(t=>e.role_id===t.id);return{...e,role:t?.name}}),[o,m]);return{totalUsers:n?.pagination.total||0,totalInvites:s?.pagination.total||0,users:t,ownerUser:x,adminUsers:S,editorUsers:C,authorUsers:w,contributorUsers:T,currentUser:e,invites:E,isLoading:i||u||h,hasNextPage:r===!1,invitesHasNextPage:l===!1,fetchNextPage:a,fetchNextInvitePage:f}},S=s(()=>import(`./limit-service-BhiEvqcP.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1,2,3]),import.meta.url),C=class extends Error{errorType;errorDetails;constructor({errorType:e,errorDetails:t,message:n}){super(n),this.errorType=e,this.errorDetails=t}},w=class extends C{constructor(e){super(Object.assign({errorType:`IncorrectUsageError`},e))}},T=class extends C{constructor(e){super(Object.assign({errorType:`HostLimitError`},e))}},E=()=>{let{config:e}=d(),[t,n]=(0,_.useState)(null);(0,_.useEffect)(()=>{S.then(e=>n(()=>e.default))},[]);let{users:r,contributorUsers:i,invites:a,isLoading:o}=x(),{refetch:s}=l({searchParams:{limit:`1`},enabled:!1}),{refetch:c}=u({searchParams:{filter:`status:active`,limit:`1`},enabled:!1}),f=(0,_.useMemo)(()=>e.hostSettings?.billing?.enabled===!0&&e.hostSettings?.billing?.url?e.hostSettings.billing.url:`https://ghost.org/help/`,[e.hostSettings?.billing]);return(0,_.useMemo)(()=>{let n={isLimited:()=>!1,isDisabled:()=>!1,checkWouldGoOverLimit:()=>Promise.resolve(!1),errorIfWouldGoOverLimit:()=>Promise.resolve(),errorIfIsOverLimit:()=>Promise.resolve()};if(!t||!e.hostSettings?.limits||o)return n;let l={...e.hostSettings.limits},u=new t;return l.staff&&(l.staff.currentCountQuery=async()=>{let e=r.filter(e=>e.status!==`inactive`&&!i.includes(e)),t=a.filter(e=>e.role!==`Contributor`);return e.length+t.length}),l.members&&(l.members.currentCountQuery=async()=>{let{data:e}=await s();return e?.meta?.pagination?.total||0}),l.newsletters&&(l.newsletters.currentCountQuery=async()=>{let{data:{pages:e}={pages:[]}}=await c();return e[0].meta?.pagination.total||0}),u.loadLimits({limits:l,helpLink:f,errors:{HostLimitError:T,IncorrectUsageError:w}}),{isLimited:e=>u.isLimited(e),isDisabled:e=>u.isDisabled(e),checkWouldGoOverLimit:e=>u.checkWouldGoOverLimit(e),errorIfWouldGoOverLimit:(e,t={})=>u.errorIfWouldGoOverLimit(e,t),errorIfIsOverLimit:e=>u.errorIfIsOverLimit(e)}},[t,e,i,s,c,f,a,o,r])};export{m as a,g as i,E as n,p as o,x as r,h as s,T as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{i as n,r}from"./framework-provider-CFLwK5uS.js";import{p as i}from"./hooks-CJepWnbB.js";import{t as a}from"./preload-helper-DYl5dUZ5.js";import{On as o}from"./index-BOJzlYiz.js";import{n as s}from"./global-data-provider-CixmTX00.js";var c=e(t(),1);function l(){let{config:e,settings:t}=s(),[l]=o(t,[`pintura`]),[u,d]=(0,c.useState)(!1),[f,p]=(0,c.useState)(!1),[m,h]=(0,c.useState)(!1),g=(0,c.useRef)(!1),[_]=o(t,[`pintura_js_url`]),[v]=o(t,[`pintura_css_url`]),y=l&&u&&f||!1,b=e?.pintura;(0,c.useEffect)(()=>{let e=b?.js?b?.js:_||null;if(e){if(e.startsWith(`/`)){let{adminRoot:t}=i();e=window.location.origin+t.replace(/\/$/,``)+e}if(window.pintura){d(!0);return}try{let t=new URL(e),n=`${t.protocol}//${t.host}${t.pathname}`;a(()=>import(n),[],import.meta.url).then(()=>{d(!0)}).catch(e=>{r(e)})}catch(e){r(e)}}},[_,b?.js]),(0,c.useEffect)(()=>{let e=b?.css?b?.css:v||null;if(e){if(e.startsWith(`/`)){let{adminRoot:t}=i();e=window.location.origin+t.replace(/\/$/,``)+e}try{if(document.querySelector(`link[href="${e}"]`))p(!0);else{let t=document.createElement(`link`);t.rel=`stylesheet`,t.type=`text/css`,t.href=e,t.onload=()=>{p(!0)},document.head.appendChild(t)}}catch(e){r(e)}}},[v,b?.css]);let x=(0,c.useCallback)(({image:e,handleSave:t})=>{if(e&&y){let r=new URL(e);r.searchParams.has(`v`)||r.searchParams.set(`v`,Date.now().toString());let i=r.href,a=window.pintura.openDefaultEditor({src:i,enableTransparencyGrid:!0,util:`crop`,utils:[`crop`,`filter`,`finetune`,`redact`,`annotate`,`trim`,`frame`,`resize`],frameOptions:[[void 0,e=>e.labelNone],[`solidSharp`,e=>e.frameLabelMatSharp],[`solidRound`,e=>e.frameLabelMatRound],[`lineSingle`,e=>e.frameLabelLineSingle],[`hook`,e=>e.frameLabelCornerHooks],[`polaroid`,e=>e.frameLabelPolaroid]],cropSelectPresetFilter:`landscape`,cropSelectPresetOptions:[[void 0,`Custom`],[1,`Square`],[2/1,`2:1`],[3/2,`3:2`],[4/3,`4:3`],[16/10,`16:10`],[16/9,`16:9`],[1/2,`1:2`],[2/3,`2:3`],[3/4,`3:4`],[10/16,`10:16`],[9/16,`9:16`]],locale:{labelButtonExport:`Save and close`},previewPad:!0,willClose:()=>g.current?(h(!1),!0):!1});a.on(`loaderror`,()=>{n(`Pintura editor failed to load`)}),a.on(`process`,e=>{t(e.dest)}),h(!0)}},[y]);return(0,c.useEffect)(()=>{let e=e=>{e.key===`Escape`&&e.stopPropagation()};if(!m)return;let t=e=>{e.target instanceof Element&&e.target.closest(`.PinturaModal button[title="Close"]`)&&(g.current=!0)};return window.addEventListener(`click`,t,{capture:!0}),window.addEventListener(`keydown`,e,{capture:!0}),()=>{window.removeEventListener(`click`,t,{capture:!0}),window.removeEventListener(`keydown`,e,{capture:!0})}},[m]),{isEnabled:y,openEditor:x}}export{l as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{g as e}from"./chunk-KS7C4IRE-DG9HTHQ3.js";var t=()=>{let[t]=e();return{getParam:e=>t.get(e)}};export{t};
|
|
@@ -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-DX3WBWVO.js";import{G as r,Ji as i,Kt as a,Pr as o,Pt as s,Ut as c,Vt as l,ar as u,ft as d}from"./index-BOJzlYiz.js";var f=e(t(),1),p=n(),m=({object:e,onReply:t,onReplyError:n,className:i,...o})=>{let{data:s}=l(`index`),[c,u]=(0,f.useState)(!1);if(!s)return null;let m=e.attributedTo,h=`Reply...`;return m?.preferredUsername&&m?.id&&(h=`Reply to ${a(m)}...`),(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`div`,{className:`flex w-full cursor-pointer gap-x-3 py-6 ${i||``}`,onClick:()=>u(!0),...o,children:[(0,p.jsx)(d,{author:s}),(0,p.jsx)(`div`,{className:`flex w-full items-center`,children:(0,p.jsx)(`div`,{className:`w-full text-[1.5rem] text-gray-500 transition-colors dark:text-gray-700`,children:h})})]}),c&&(0,p.jsx)(r,{open:c,replyTo:{object:e,actor:e.attributedTo},onOpenChange:e=>{u(e)},onReply:()=>{t?.(),u(!1)},onReplyError:()=>{n?.()}})]})},h=({last:e})=>(0,p.jsxs)(`div`,{className:`relative mt-[-5px] py-5`,children:[(0,p.jsxs)(`div`,{className:`flex h-12 grow items-center gap-2 rounded-lg border border-gray-200 p-2 px-[10px] text-gray-600`,children:[(0,p.jsx)(i,{size:18,strokeWidth:1.25}),`This post has been deleted`]}),!e&&(0,p.jsx)(`div`,{className:`absolute top-[70px] bottom-0 left-[18px] z-0 mb-[-13px] w-[2px] rounded-sm bg-gray-200`})]}),g=({count:e,onClick:t,variant:n=`default`,preserveScroll:r=!0,loading:i=!1})=>{let a=(0,f.useRef)(null),s=()=>{if(e&&e>0)return`Show ${e} more ${e===1?`reply`:`replies`}`;switch(n){case`expand`:return`Show replies`;case`loadMore`:return`Show more replies`;default:return`Show replies`}},c=()=>{if(r){let e=document.querySelector(`[data-scrollable-container]`),n=e?e.scrollTop:window.scrollY;t(),setTimeout(()=>{e?e.scrollTop=n:window.scrollTo(0,n)},0)}else t()};return(0,p.jsxs)(`div`,{ref:a,className:`mt-[-7px] flex items-center pb-3`,children:[(0,p.jsxs)(`div`,{className:`flex w-10 flex-col items-center justify-center gap-1`,children:[(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`}),(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`}),(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`})]}),(0,p.jsx)(o,{className:`text-sm font-medium text-blue-600 hover:text-blue-800`,variant:`ghost`,onClick:e=>{e.preventDefault(),e.stopPropagation(),e.target.blur(),c()},children:i?(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(u,{size:`sm`}),(0,p.jsx)(`span`,{children:`Loading...`})]}):s()})]})};function _(e,t={}){let{includeAncestors:n=!1}=t,{data:r,isLoading:i,loadMoreChildren:a,loadMoreChildReplies:o,hasMoreChildren:l,hasMoreChildReplies:u}=s(`index`,e);return{threadParents:n&&r?.ancestors?.chain?.map(c)||[],post:r?.post?c(r.post):void 0,processedReplies:(r?.children??[]).map(e=>({mainReply:c(e.post),chain:e.chain?e.chain.map(c):[]})),isLoading:i,loadMoreChildren:a,loadMoreChildReplies:o,hasMoreChildren:l,hasMoreChildReplies:u}}export{m as i,g as n,h as r,_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{m as n}from"./hooks-CJepWnbB.js";import{t as r}from"./use-form-vRjI0Kwk.js";import{i}from"./shade-app-B3heOAfz-BhQXxNkT.js";import{Nn as a}from"./index-BOJzlYiz.js";import{n as o}from"./global-data-provider-CixmTX00.js";var s=e(t(),1),c=({savingDelay:e,onValidate:t}={})=>{let c=(0,s.useRef)(null),{siteData:l,settings:u}=o(),{mutateAsync:d}=a(),f=n(),[p,m]=(0,s.useState)(!1),{formState:h,saveState:g,handleSave:_,updateForm:v,setFormState:y,reset:b,validate:x,errors:S,clearError:C,okProps:w}=r({initialState:u||[],savingDelay:e,onSave:async()=>{await d?.(E())},onSaveError:f,onValidate:t}),{setGlobalDirtyState:T}=i();(0,s.useEffect)(()=>{T(h.some(e=>e.dirty))},[h,T]),(0,s.useEffect)(()=>{p&&c.current&&c.current.focus()},[p]),(0,s.useEffect)(()=>{(!p||g===`saving`)&&y(()=>u)},[u]);let E=()=>h?.filter(e=>e.dirty)?.map(e=>({key:e.key,value:e.value}));return{localSettings:h,isEditing:p,saveState:g,focusRef:c,siteData:l,handleSave:async()=>{let e=await _();return e&&m(!1),e},handleCancel:()=>{b(),m(!1)},updateSetting:(0,s.useCallback)((e,t)=>{v(n=>n.some(t=>t.key===e)?n.map(n=>n.key===e?{...n,value:t,dirty:!0}:n):[...n,{key:e,value:t,dirty:!0}])},[v]),handleEditingChange:e=>{m(e)},validate:x,errors:S,clearError:C,okProps:w}};export{c as t};
|
|
@@ -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-DX3WBWVO.js";import{n as r}from"./framework-provider-CFLwK5uS.js";import{l as i}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a}from"./router-provider-CkB_ArLF.js";import{c as o,o as s}from"./dist-Cb5RSHSg.js";import{t as c}from"./box-By_EgGtm.js";import{t as l}from"./inline-Cw-gigDW.js";import{t as u}from"./text-DU9Hv33_.js";import{i as d}from"./shade-app-B3heOAfz-BhQXxNkT.js";import{Oi as f,Pr as p,ar as ee}from"./index-BOJzlYiz.js";import{n as m,t as h}from"./dirty-confirm-dialog-DmdMpgyN.js";var g=n(),_=({shiftY:e,height:t=96,children:n,className:r,contentClassName:i,style:a,...s})=>(0,g.jsxs)(`div`,{className:o(`sticky z-[297] m-0 box-border w-full p-0`,r),style:{bottom:e?`calc(${e} - 24px)`:`-24px`,height:`${t+24}px`,...a},...s,children:[(0,g.jsx)(`div`,{className:`sticky bottom-0 z-[298] block h-6 bg-background`}),(0,g.jsx)(`div`,{className:o(`sticky bottom-0 z-[299] -mb-6 flex items-center justify-between bg-background`,i),style:{height:t},children:n}),(0,g.jsx)(`div`,{className:`sticky mx-2 block h-6 rounded-full shadow-[0_0_0_1px_color-mix(in_oklab,var(--color-border)_25%,transparent),0_-8px_16px_-3px_color-mix(in_oklab,var(--color-foreground)_8%,transparent)]`,style:{bottom:e?`calc(${e} + ${t-24}px)`:`${t-24}px`}})]}),v=e(t()),y=function(){return y=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},y.apply(this,arguments)},b=function(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},x=Symbol(`NiceModalId`),S={},C=v.createContext(S),w=v.createContext(null),T={},E={},D=0,O=function(){throw Error(`No dispatch method detected, did you embed your app with NiceModal.Provider?`)},k=function(){return`_nice_modal_`+D++},A=function(e,t){var n,r,i;switch(e===void 0&&(e=S),t.type){case`nice-modal/show`:var a=t.payload,o=a.modalId,s=a.args;return y(y({},e),(n={},n[o]=y(y({},e[o]),{id:o,args:s,visible:!!E[o],delayVisible:!E[o]}),n));case`nice-modal/hide`:var o=t.payload.modalId;return e[o]?y(y({},e),(r={},r[o]=y(y({},e[o]),{visible:!1}),r)):e;case`nice-modal/remove`:var o=t.payload.modalId,c=y({},e);return delete c[o],c;case`nice-modal/set-flags`:var l=t.payload,o=l.modalId,u=l.flags;return y(y({},e),(i={},i[o]=y(y({},e[o]),u),i));default:return e}};function te(e){return T[e]?.comp}function j(e,t){return{type:`nice-modal/show`,payload:{modalId:e,args:t}}}function M(e,t){return{type:`nice-modal/set-flags`,payload:{modalId:e,flags:t}}}function ne(e){return{type:`nice-modal/hide`,payload:{modalId:e}}}function re(e){return{type:`nice-modal/remove`,payload:{modalId:e}}}var N={},P={},F=function(e){return typeof e==`string`?e:(e[x]||(e[x]=k()),e[x])};function I(e,t){var n=F(e);if(typeof e!=`string`&&!T[n]&&V(n,e),O(j(n,t)),!N[n]){var r,i,a=new Promise(function(e,t){r=e,i=t});N[n]={resolve:r,reject:i,promise:a}}return N[n].promise}function L(e){var t=F(e);if(O(ne(t)),delete N[t],!P[t]){var n,r,i=new Promise(function(e,t){n=e,r=t});P[t]={resolve:n,reject:r,promise:i}}return P[t].promise}var R=function(e){var t=F(e);O(re(t)),delete N[t],delete P[t]},ie=function(e,t){O(M(e,t))};function z(e,t){var n=(0,v.useContext)(C),r=(0,v.useContext)(w),i=null,a=e&&typeof e!=`string`;if(i=e?F(e):r,!i)throw Error(`No modal id found in NiceModal.useModal.`);var o=i;(0,v.useEffect)(function(){a&&!T[o]&&V(o,e,t)},[a,o,e,t]);var s=n[o],c=(0,v.useCallback)(function(e){return I(o,e)},[o]),l=(0,v.useCallback)(function(){return L(o)},[o]),u=(0,v.useCallback)(function(){return R(o)},[o]),d=(0,v.useCallback)(function(e){var t;(t=N[o])==null||t.resolve(e),delete N[o]},[o]),f=(0,v.useCallback)(function(e){var t;(t=N[o])==null||t.reject(e),delete N[o]},[o]),p=(0,v.useCallback)(function(e){var t;(t=P[o])==null||t.resolve(e),delete P[o]},[o]);return(0,v.useMemo)(function(){return{id:o,args:s?.args,visible:!!s?.visible,keepMounted:!!s?.keepMounted,show:c,hide:l,remove:u,resolve:d,reject:f,resolveHide:p}},[o,s?.args,s?.visible,s?.keepMounted,c,l,u,d,f,p])}var B=function(e){return function(t){var n=t.defaultVisible,r=t.keepMounted,i=t.id,a=b(t,[`defaultVisible`,`keepMounted`,`id`]),o=z(i),s=o.args,c=o.show,l=(0,v.useContext)(C),u=!!l[i];(0,v.useEffect)(function(){return n&&c(),E[i]=!0,function(){delete E[i]}},[i,c,n]),(0,v.useEffect)(function(){r&&ie(i,{keepMounted:!0})},[i,r]);var d=l[i]?.delayVisible;return(0,v.useEffect)(function(){d&&c(s)},[d,s,c]),u?v.createElement(w.Provider,{value:i},v.createElement(e,y({},a,s))):null}},V=function(e,t,n){T[e]?T[e].props=n:T[e]={comp:t,props:n}},H=function(e){delete T[e]},U=function(){var e=(0,v.useContext)(C),t=Object.keys(e).filter(function(t){return!!e[t]});t.forEach(function(e){if(!T[e]&&!E[e]){console.warn(`No modal found for id: `+e+`. Please check the id or if it is registered or declared via JSX.`);return}});var n=t.filter(function(e){return T[e]}).map(function(e){return y({id:e},T[e])});return v.createElement(v.Fragment,null,n.map(function(e){return v.createElement(e.comp,y({key:e.id,id:e.id},e.props))}))},ae=function(e){var t=e.children,n=(0,v.useReducer)(A,S),r=n[0];return O=n[1],v.createElement(C.Provider,{value:r},t,v.createElement(U,null))},W={Provider:function(e){var t=e.children,n=e.dispatch,r=e.modals;return!n||!r?v.createElement(ae,null,t):(O=n,v.createElement(C.Provider,{value:r},t,v.createElement(U,null)))},ModalDef:function(e){var t=e.id,n=e.component;return(0,v.useEffect)(function(){return V(t,n),function(){H(t)}},[t,n]),null},ModalHolder:function(e){var t=e.modal,n=e.handler,r=n===void 0?{}:n,i=b(e,[`modal`,`handler`]),a=(0,v.useMemo)(function(){return k()},[]),o=typeof t==`string`?T[t]?.comp:t;if(!r)throw Error(`No handler found in NiceModal.ModalHolder.`);if(!o)throw Error(`No modal found for id: `+t+` in NiceModal.ModalHolder.`);return r.show=(0,v.useCallback)(function(e){return I(a,e)},[a]),r.hide=(0,v.useCallback)(function(){return L(a)},[a]),v.createElement(o,y({id:a},i))},NiceModalContext:C,create:B,register:V,getModal:te,show:I,hide:L,remove:R,useModal:z,reducer:A,antdModal:function(e){return{visible:e.visible,onOk:function(){return e.hide()},onCancel:function(){return e.hide()},afterClose:function(){e.resolveHide(),e.keepMounted||e.remove()}}},antdDrawer:function(e){return{visible:e.visible,onClose:function(){return e.hide()},afterVisibleChange:function(t){t||e.resolveHide(),!t&&!e.keepMounted&&e.remove()}}},muiDialog:function(e){return{open:e.visible,onClose:function(){return e.hide()},onExited:function(){e.resolveHide(),!e.keepMounted&&e.remove()}}},bootstrapDialog:function(e){return{show:e.visible,onHide:function(){return e.hide()},onExited:function(){e.resolveHide(),!e.keepMounted&&e.remove()}}}},oe=`bg-modal-backdrop backdrop-blur-[3px]`,se=s(`relative z-50 flex max-h-full w-full flex-col justify-between overflow-x-hidden bg-background text-foreground`,{variants:{size:{sm:`max-w-[480px] rounded-lg`,md:`max-w-[720px] rounded-lg`,lg:`max-w-[1020px] rounded-lg`,xl:`max-w-[1240px] rounded-lg`,full:`h-full rounded-lg`,bleed:`h-full`},align:{center:`mx-auto`,left:`mr-auto`,right:`ml-auto`},scrolling:{true:`overflow-y-auto`,false:`overflow-y-hidden`},formSheet:{true:`shadow-md`,false:`shadow-xl`}},defaultVariants:{size:`md`,align:`center`,scrolling:!0,formSheet:!1}}),ce={sm:`p-4 md:p-[8vmin]`,md:`p-4 md:p-[8vmin]`,lg:`p-4 md:p-[4vmin]`,xl:`p-4 md:p-[3vmin]`,full:`p-4 md:p-[3vmin]`,bleed:``},le={sm:`p-8`,md:`p-8`,lg:`p-7`,xl:`p-10`,full:`p-10`,bleed:`p-10`},ue={sm:`-inset-x-8`,md:`-inset-x-8`,lg:`-inset-x-8`,xl:`-inset-x-10 -top-10`,full:`-inset-x-10`,bleed:`-inset-x-10`},G=(0,v.forwardRef)(({"aria-label":e,className:t,size:n=`md`,align:r=`center`,width:i,height:a,testId:s,title:y,okLabel:b=`OK`,okLoading:x=!1,cancelLabel:S=`Cancel`,footer:C,footerClassName:w,header:T,leftButton:E,buttonsDisabled:D,okDisabled:O,padding:k=!0,onOk:A,okVariant:te=`default`,onCancel:j,topRightContent:M,hideXOnMobile:ne=!1,requestClose:re,afterClose:N,children:P,backDrop:F=!0,backDropClick:I=!0,stickyFooter:L=!1,stickyHeader:R=!1,scrolling:ie=!0,dirty:z=!1,animate:B=!0,formSheet:V=!1,enableCMDS:H=!0,allowBackgroundInteraction:U=!1},ae)=>{let{setGlobalDirtyState:W}=d(),{confirm:G,dialogProps:K}=m(),[q,J]=(0,v.useState)(!1);(0,v.useEffect)(()=>{W(z)},[z,W]);let Y=()=>{G(z,()=>{re(),N?.()})};(0,v.useEffect)(()=>{let e=e=>{if(e.key!==`Escape`)return;let t=document.activeElement;t?.hasAttribute(`data-kg-link-input`)||setTimeout(()=>{e.defaultPrevented||(t instanceof HTMLElement&&document.activeElement===t&&t.blur(),j?j():Y())})};return document.addEventListener(`keydown`,e),()=>document.removeEventListener(`keydown`,e)}),(0,v.useEffect)(()=>{let e=setTimeout(()=>J(!0),250);return()=>clearTimeout(e)},[]),(0,v.useEffect)(()=>{if(!A||!H)return;let e=e=>{(e.metaKey||e.ctrlKey)&&e.key===`s`&&(e.preventDefault(),A())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[H,A]);let X=k?le[n]:`p-0`,Z=o(se({size:n,align:r,scrolling:ie,formSheet:V}),t,B&&!V&&!q&&r===`center`&&`animate-modal-in`,B&&!V&&!q&&r===`right`&&`animate-modal-in-from-right`,V&&!q&&`animate-modal-in-reverse`,i===`full`&&`w-full`,i===`toSidebar`&&`w-full max-w-[calc(100dvw_-_280px)] lg:max-w-full min-[1280px]:max-w-[calc(100dvw_-_320px)]`,a===`full`&&`h-full`,U&&`pointer-events-auto`),de=o(`fixed inset-0 z-[1000] h-[100dvh] w-[100dvw] max-[800px]:pb-20`,ce[n],U&&`pointer-events-none`),Q=o(X,`pb-0`,ue[n],M&&M!==`close`&&`flex items-center justify-between gap-5`,R&&`sticky -top-px z-[300] -mb-4 bg-background pb-4`),fe=o(X,`py-0`,(n===`full`||n===`bleed`||a===`full`||typeof a==`number`)&&`grow`,C===!1&&`pb-0`),pe=o(X,`flex w-full items-center justify-between`,L&&`py-6`,w),me={...typeof i==`number`?{width:`100%`,maxWidth:`${i}px`}:{},...typeof a==`number`?{height:`100%`,maxHeight:`${a}px`}:{}},he=e=>{e.target===e.currentTarget&&I&&Y()},$;C?$=C:C!==!1&&($=(0,g.jsxs)(l,{className:pe,gap:`none`,justify:`between`,children:[(0,g.jsx)(c,{children:E}),(0,g.jsxs)(l,{gap:`md`,children:[S&&(0,g.jsx)(p,{"data-testid":`cancel-modal`,disabled:D,type:`button`,variant:`outline`,onClick:j||Y,children:S}),b&&(0,g.jsxs)(p,{"data-testid":`ok-modal`,disabled:D||O||x,type:`button`,variant:te,onClick:A,children:[x&&(0,g.jsx)(ee,{size:`sm`}),b]})]})]})),L&&($=(0,g.jsx)(_,{height:84,children:$}));let ge=y&&(0,g.jsx)(u,{as:`h3`,className:`md:text-2xl`,leading:`heading`,size:`xl`,weight:`bold`,children:y}),_e=M&&M!==`close`?(0,g.jsxs)(l,{as:`header`,className:Q,gap:`lg`,justify:`between`,children:[ge,M]}):(0,g.jsxs)(`header`,{className:Q,children:[ge,(0,g.jsx)(c,{className:o(`absolute top-6 right-6`,M!==`close`&&`md:hidden`,ne&&`hidden`),children:(0,g.jsx)(p,{"aria-label":`Close modal`,className:`-m-2 opacity-50 hover:opacity-100`,"data-testid":`close-modal`,size:`icon`,type:`button`,variant:`ghost`,onClick:Y,children:(0,g.jsx)(f,{})})})]});return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(c,{className:de,id:`modal-backdrop`,onMouseDown:he,children:[(0,g.jsx)(c,{className:o(`pointer-events-none fixed inset-0 z-0`,F&&!V&&oe,V&&`bg-form-sheet-backdrop`)}),(0,g.jsxs)(`section`,{ref:ae,"aria-label":e,className:Z,"data-testid":s,style:me,children:[T!==!1&&_e,(0,g.jsx)(c,{className:fe,children:P}),$]})]}),(0,g.jsx)(h,{...K})]})});G.displayName=`SettingsModalContent`;var K=(0,v.forwardRef)((e,t)=>{let n=z();return(0,g.jsx)(G,{ref:t,...e,requestClose:()=>n.remove()})});K.displayName=`NiceSettingsModal`;var q=(0,v.forwardRef)(({onClose:e,...t},n)=>e?(0,g.jsx)(G,{ref:n,...t,requestClose:e}):(0,g.jsx)(K,{ref:n,...t}));q.displayName=`SettingsModal`;var J=(0,v.createContext)({updateSection:()=>{},updateNav:()=>{},currentSection:null,updateNavigatedSection:()=>{},scrollToSection:()=>{}}),Y=()=>(0,v.useContext)(J),X=193,Z=(e,t)=>{let n=document.getElementById(`admin-x-settings-scroller`),r=e.getBoundingClientRect().top+n.scrollTop;n.scrollTo({behavior:t?`smooth`:`instant`,top:r-X})},de=(e,t)=>{let n=document.getElementById(`admin-x-settings-sidebar-scroller`),r=e.getBoundingClientRect(),i=n.getBoundingClientRect(),a=i.top+40;if(r.top>=a&&r.left>=i.left&&r.right<=i.right&&r.bottom<=i.bottom||![`auto`,`scroll`].includes(getComputedStyle(n).overflowY))return;let o=t?`smooth`:`instant`;n.querySelector(`[data-setting-nav-item]`)===e?n.scrollTo({top:0,behavior:o}):r.top<a?n.scrollTo({top:n.scrollTop+r.top-a,behavior:o}):n.scrollTo({top:n.scrollTop+r.top-i.top-i.height+r.height+4,behavior:o})},Q=(e,t,n)=>{let r=t.map(({isIntersecting:e,target:t})=>({isIntersecting:e,id:Object.entries(n).find(([,e])=>e===t)?.[0]})).filter(e=>e.id),i=r.filter(t=>!e.includes(t.id)&&t.isIntersecting).map(e=>e.id),a=r.filter(e=>!e.isIntersecting).map(e=>e.id),o=e.filter(e=>!a.includes(e)).concat(i);return o.sort((e,t)=>{let r=n[e],i=n[t];return!r||!i?0:r.getBoundingClientRect().top-i.getBoundingClientRect().top}),o},fe=({children:e})=>{let[t,n]=(0,v.useState)(null),r=(0,v.useRef)({}),i=(0,v.useRef)(null),[a,o]=(0,v.useState)([]),[s,c]=(0,v.useState)(null),[l,u]=(0,v.useState)(!1),[d,f]=(0,v.useState)(!1),[,p]=(0,v.useState)(!1),ee=(0,v.useCallback)(e=>{n(e),u(!0)},[]),m=(0,v.useRef)({}),h=(0,v.useCallback)(()=>{let e=new IntersectionObserver(e=>{o(t=>{let n=Q(t,e,r.current);return n.length&&c(n[0]),n})},{rootMargin:`-${X-50}px 0px -40% 0px`});return Object.values(r.current).forEach(t=>e.observe(t)),e},[]),_=(0,v.useCallback)((e,n)=>{r.current[e]!==n&&(r.current[e]&&i.current?.unobserve(r.current[e]),r.current[e]=n,i.current?.observe(n),!d&&e===t&&(Z(n,!1),f(!0)))},[i,t,d]),y=(0,v.useCallback)((e,t)=>{m.current[e]=t},[]),b=(0,v.useCallback)(e=>{r.current[e]&&Z(r.current[e],!0)},[]),x=(0,v.useMemo)(()=>t&&a.includes(t)?t:a.length?a[0]:s,[a,s,t]);return(0,v.useEffect)(()=>{l&&(t&&r.current[t]?f(e=>(Z(r.current[t],e),!0)):f(!0),setTimeout(()=>h()))},[l,t,h]),(0,v.useEffect)(()=>{l&&x&&m.current[x]&&p(e=>(de(m.current[x],e),!0))},[l,x]),(0,g.jsx)(J.Provider,{value:{updateSection:_,updateNav:y,currentSection:x,updateNavigatedSection:ee,scrollToSection:b},children:e})},pe=e=>{let{updateSection:t}=Y(),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>{e&&n.current&&t(e,n.current)},[e,t]),{ref:n}},me=e=>{let{updateNav:t}=Y(),n=(0,v.useRef)(null);return(0,v.useEffect)(()=>{e&&n.current&&(Array.isArray(e)?e:[e]).forEach(e=>{t(e,n.current)})},[e,t]),{ref:n,props:{"data-setting-nav-item":!0}}};function he(){let e=a(),t=i(),{externalNavigate:n}=r(),{scrollToSection:o}=Y();return{route:(0,v.useMemo)(()=>t.pathname.replace(/^\/settings\/?/,``),[t.pathname]),updateRoute:(0,v.useCallback)(r=>{if(typeof r==`object`&&r.isExternal){n(r);return}let i=typeof r==`string`?{route:r}:r,a=i.route.replace(/^\//,``),s=a.indexOf(`?`),c=s===-1?a:a.slice(0,s),l=s===-1?``:a.slice(s+1),u=c?`/settings/${c}`:`/settings`,d=l?`?${l}`:``;if(!i.replace&&t.pathname===u){if(t.search===d){o(c.split(`/`)[0]);return}e(u+d,{replace:i.replace}),o(c.split(`/`)[0]);return}e(u+d,{replace:i.replace})},[n,e,t.pathname,t.search,o])}}export{me as a,z as c,Y as i,_ as l,fe as n,q as o,pe as r,W as s,he as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Gs as e}from"./index-BOJzlYiz.js";import{n as t}from"./global-data-provider-CixmTX00.js";function n(){let{config:n}=t();return e(n)}export{n as t};
|
|
@@ -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-DX3WBWVO.js";import{h as r,m as i,n as a,r as o,x as s}from"./hooks-CJepWnbB.js";import{n as c}from"./dist-Ndy-PuGN.js";import{t as l}from"./use-form-vRjI0Kwk.js";import{l as u,m as d}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{f,x as p}from"./dist-Cb5RSHSg.js";import{t as m}from"./text-DU9Hv33_.js";import{i as h,n as g,r as _,t as v}from"./tabs-l9c7FjzI.js";import{t as y}from"./switch-CE2NuMn-.js";import{t as ee}from"./dropzone-B21Entqz.js";import{i as b,n as x,o as S,s as C,t as w}from"./select-xuZAuDyS.js";import{o as te,t as T}from"./use-settings-navigation-BOZcat_V.js";import{i as E,n as D,o as O,r as k,t as A}from"./field-BQqLTgHM.js";import{t as j}from"./textarea-d9qEkMOP.js";import{_ as M,c as ne,d as N,g as re,h as ie,m as ae,o as P,p as oe,s as se,t as F,u as ce}from"./users-DmGMPfw7.js";import{$r as I,Bo as le,En as L,Ia as ue,Pr as R,Ri as de,Yi as fe,Yr as pe,Zr as me,ai as he,cr as z,wn as ge}from"./index-BOJzlYiz.js";import{a as _e,c as ve,i as ye,n as be,o as xe,r as Se,s as Ce,t as we}from"./images-3cQgwfTD.js";import{a as B,i as V,n as Te,r as H,s as U,t as W}from"./social-urls-CHQ9cTAK.js";import{t as Ee}from"./validator-Cr0sMKuW.js";import{i as G,n as De,r as Oe,t as ke}from"./use-limiter-ffwpsZPp.js";import{n as K}from"./global-data-provider-CixmTX00.js";import{n as Ae}from"./confirmation-provider-BEdrnHns.js";import{t as je}from"./use-upgrade-route-B3_DUiuT.js";import{t as q}from"./api-keys-Df6uv1dT.js";import{t as Me}from"./use-pintura-editor-Cb41oJyL.js";var J=n(),Ne=({user:e,setUserData:t})=>{let{config:n,settings:r}=K(),i=L(r||[],n||{});return(0,J.jsxs)(U,{children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`span`,{className:`text-sm font-medium tracking-wide text-grey-700 uppercase`,children:`Engagement`}),(0,J.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4`,children:[(0,J.jsxs)(A,{orientation:`horizontal`,children:[(0,J.jsxs)(D,{children:[(0,J.jsx)(O,{htmlFor:`comment-notifications`,children:`Comments`}),(0,J.jsx)(k,{children:`Every time a member comments on one of your posts`})]}),(0,J.jsx)(y,{checked:!!e.comment_notifications,id:`comment-notifications`,onCheckedChange:n=>t({...e,comment_notifications:n})})]}),P(e)&&(0,J.jsxs)(A,{orientation:`horizontal`,children:[(0,J.jsxs)(D,{children:[(0,J.jsx)(O,{htmlFor:`recommendation-notifications`,children:`Recommendations`}),(0,J.jsx)(k,{children:`Every time another publisher recommends you to their audience`})]}),(0,J.jsx)(y,{checked:!!e.recommendation_notifications,id:`recommendation-notifications`,onCheckedChange:n=>t({...e,recommendation_notifications:n})})]})]})]}),P(e)&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`span`,{className:`text-sm font-medium tracking-wide text-grey-700 uppercase`,children:`Members`}),(0,J.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4`,children:[(0,J.jsxs)(A,{orientation:`horizontal`,children:[(0,J.jsxs)(D,{children:[(0,J.jsx)(O,{htmlFor:`free-member-signup-notifications`,children:`New signups`}),(0,J.jsx)(k,{children:`Every time a new free member signs up`})]}),(0,J.jsx)(y,{checked:!!e.free_member_signup_notification,id:`free-member-signup-notifications`,onCheckedChange:n=>t({...e,free_member_signup_notification:n})})]}),i&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(A,{orientation:`horizontal`,children:[(0,J.jsxs)(D,{children:[(0,J.jsx)(O,{htmlFor:`paid-subscription-started-notifications`,children:`New paid members`}),(0,J.jsx)(k,{children:`Every time a member starts a new paid subscription`})]}),(0,J.jsx)(y,{checked:!!e.paid_subscription_started_notification,id:`paid-subscription-started-notifications`,onCheckedChange:n=>t({...e,paid_subscription_started_notification:n})})]}),(0,J.jsxs)(A,{orientation:`horizontal`,children:[(0,J.jsxs)(D,{children:[(0,J.jsx)(O,{htmlFor:`paid-subscription-canceled-notifications`,children:`Paid member cancellations`}),(0,J.jsx)(k,{children:`Every time a member cancels their paid subscription`})]}),(0,J.jsx)(y,{checked:!!e.paid_subscription_canceled_notification,id:`paid-subscription-canceled-notifications`,onCheckedChange:n=>t({...e,paid_subscription_canceled_notification:n})})]})]})]})]}),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`span`,{className:`text-sm font-medium tracking-wide text-grey-700 uppercase`,children:`Revenue`}),(0,J.jsxs)(`div`,{className:`mt-3 flex flex-col gap-4`,children:[(0,J.jsxs)(A,{orientation:`horizontal`,children:[(0,J.jsxs)(D,{children:[(0,J.jsx)(O,{htmlFor:`milestone-notifications`,children:`Milestones`}),(0,J.jsx)(k,{children:i?`Occasional summaries of your audience & revenue growth`:`Occasional summaries of your audience growth`})]}),(0,J.jsx)(y,{checked:!!e.milestone_notifications,id:`milestone-notifications`,onCheckedChange:n=>t({...e,milestone_notifications:n})})]}),i&&(0,J.jsxs)(A,{orientation:`horizontal`,children:[(0,J.jsxs)(D,{children:[(0,J.jsx)(O,{htmlFor:`donation-notifications`,children:`Tips & donations`}),(0,J.jsx)(k,{children:`Every time you receive a one-time payment`})]}),(0,J.jsx)(y,{checked:!!e.donation_notifications,id:`donation-notifications`,onCheckedChange:n=>t({...e,donation_notifications:n})})]}),i&&(0,J.jsxs)(A,{orientation:`horizontal`,children:[(0,J.jsxs)(D,{children:[(0,J.jsx)(O,{htmlFor:`gift-subscription-notifications`,children:`Gift subscriptions`}),(0,J.jsx)(k,{children:`Every time someone purchases or redeems a gift subscription`})]}),(0,J.jsx)(y,{checked:!!e.gift_subscription_notifications,id:`gift-subscription-notifications`,onCheckedChange:n=>t({...e,gift_subscription_notifications:n})})]})]})]})]})]})},Pe=({user:e,setUserData:t})=>(0,J.jsx)(B,{variant:`plain`,children:(0,J.jsx)(Ne,{setUserData:t,user:e})}),Y=e(t(),1),Fe=[`1234567890`,`qwertyuiop`,`qwertzuiop`,`asdfghjkl;`,`abcdefghij`,`0987654321`,`1q2w3e4r5t`,`12345asdfg`],Ie=[`ghost`,`password`,`passw0rd`],Le=e=>{let t={},n=!0,r=e.length/2;for(let n=0;n<e.length;n+=1)t[e[n]]?t[e[n]]+=1:t[e[n]]=1;for(let e in t)if(t[e]>=r)return n=!1,n;return n},X=({user:e})=>{let{currentUser:t,config:n,siteData:r}=K(),[a,o]=(0,Y.useState)(!1),[l,u]=(0,Y.useState)(``),[d,f]=(0,Y.useState)(``),[p,m]=(0,Y.useState)(``),[h,g]=(0,Y.useState)(``),[_,v]=(0,Y.useState)({}),y=(0,Y.useRef)(null),ee=(0,Y.useRef)(null),b=(0,Y.useRef)(null),{mutateAsync:x}=M(),S=i(),C=e.id===t.id,w=({password:t,confirmPassword:i})=>{if(C&&!l)return{oldPassword:`Your current password is required to set a new one`};if(t!==i)return{newPassword:`Your new passwords do not match`,confirmNewPassword:`Your new passwords do not match`};let a=n.blogUrl||window.location.host,o=r.title;a=a.replace(/^http(s?):\/\//,``);let s=a.match(/\/$/)?a:`${a}/`;if(o&&=o.trim().toLowerCase(),t.length<10)return{newPassword:`Password must be at least 10 characters long.`};t=t.toString();for(let e of Fe)if(e===t)return{newPassword:`Sorry, you cannot use an insecure password.`};if(t.toLowerCase()===e.email.toLowerCase())return{newPassword:`Sorry, you cannot use an insecure password.`};for(let e of Ie)if(t.toLowerCase().indexOf(e)>=0)return{newPassword:`Sorry, you cannot use an insecure password.`};return t.toLowerCase()===o||t.toLowerCase()===a||t.toLowerCase()===s||!Le(t)?{newPassword:`Sorry, you cannot use an insecure password.`}:{}};(0,Y.useEffect)(()=>{h===`saved`&&setTimeout(()=>{g(``),o(!1)},2500)},[h]),(0,Y.useEffect)(()=>{a&&setTimeout(()=>{C?b.current?.focus():y.current?.focus()},100)},[a,C]);let te=()=>{o(!0)},T=`Save password`;h===`saving`?T=`Saving...`:h===`saved`&&(T=`Saved`);let D=(0,J.jsxs)(J.Fragment,{children:[C&&(0,J.jsxs)(A,{"data-invalid":!!_.oldPassword||void 0,children:[(0,J.jsx)(O,{htmlFor:`old-password`,children:`Old password`}),(0,J.jsx)(z,{ref:b,"aria-invalid":!!_.oldPassword||void 0,"data-testid":`old-password`,id:`old-password`,type:`password`,value:l,onChange:e=>u(e.target.value)}),_.oldPassword&&(0,J.jsx)(E,{children:_.oldPassword})]}),(0,J.jsxs)(A,{"data-invalid":!!_.newPassword||void 0,children:[(0,J.jsx)(O,{htmlFor:`new-password`,children:`New password`}),(0,J.jsx)(z,{ref:y,"aria-invalid":!!_.newPassword||void 0,"data-testid":`new-password`,id:`new-password`,type:`password`,value:d,onChange:e=>f(e.target.value)}),_.newPassword&&(0,J.jsx)(E,{children:_.newPassword})]}),(0,J.jsxs)(A,{"data-invalid":!!_.confirmNewPassword||void 0,children:[(0,J.jsx)(O,{htmlFor:`confirm-password`,children:`Confirm new password`}),(0,J.jsx)(z,{ref:ee,"aria-invalid":!!_.confirmNewPassword||void 0,"data-testid":`confirm-password`,id:`confirm-password`,type:`password`,value:p,onChange:e=>m(e.target.value)}),_.confirmNewPassword&&(0,J.jsx)(E,{children:_.confirmNewPassword})]}),(0,J.jsxs)(`div`,{className:`mt-1 flex items-center justify-end gap-3`,children:[(0,J.jsx)(R,{type:`button`,variant:`outline`,onClick:()=>{o(!1),u(``),f(``),m(``),v({})},children:`Cancel`}),(0,J.jsx)(R,{"data-testid":`save-password-button`,type:`button`,onClick:async()=>{g(`saving`);let t=w({password:d,confirmPassword:p});if(v(t),Object.keys(t).length>0){g(``);return}try{await x({newPassword:d,confirmNewPassword:p,oldPassword:l,userId:e?.id}),g(`saved`)}catch(e){g(``),c.error(e instanceof s?e.message:`Couldn't update password. Please try again.`),S(e,{withToast:!1})}},children:T})]})]});return(0,J.jsx)(J.Fragment,{children:a?D:(0,J.jsxs)(`div`,{className:`relative flex flex-col`,children:[(0,J.jsxs)(A,{className:`grow`,"data-disabled":!0,children:[(0,J.jsx)(O,{htmlFor:`current-password`,children:`Password`}),(0,J.jsx)(z,{id:`current-password`,type:`password`,value:`••••••••••••`,disabled:!0})]}),(0,J.jsx)(R,{className:`absolute top-0 right-0 h-auto p-0 hover:bg-transparent`,"data-testid":`change-password-button`,size:`sm`,type:`button`,variant:`ghost`,onClick:te,children:`Change`})]})})},Re=({user:e,setUserData:t})=>{let{data:{roles:n}={}}=G(),{config:r}=K(),i=r.labs.superEditors,a=[{hint:`Can write and edit their own posts, but cannot publish them.`,label:`Contributor`,value:`contributor`},{hint:`Can create, edit and publish their own posts, but can’t modify others.`,label:`Author`,value:`author`},{hint:`Can edit and publish any posts, and manage Authors and Contributors.`,label:`Editor`,value:`editor`},{hint:`Trusted user who has full access to all content, settings, and user management.`,label:`Administrator`,value:`administrator`}];if(i&&(a=a.map(e=>e.value===`editor`?{...e,label:`Editor (beta mode)`,value:`super editor`,hint:`Can invite and manage other Authors and Contributors, as well as edit and publish any posts on the site. Can manage members and moderate comments.`}:e)),N(e)){let e={label:`Owner`,value:`owner`};return(0,J.jsxs)(A,{children:[(0,J.jsx)(O,{children:`Role`}),(0,J.jsxs)(w,{value:e.value,disabled:!0,children:[(0,J.jsx)(S,{"aria-label":`Role`,children:(0,J.jsx)(C,{})}),(0,J.jsx)(x,{children:(0,J.jsx)(b,{value:e.value,children:e.label})})]}),(0,J.jsxs)(k,{children:[`This user is the owner of the site. `,(0,J.jsx)(`a`,{href:`https://ghost.org/help/transfer-publication-ownership/`,rel:`noopener noreferrer`,target:`_blank`,children:`Transfer ownership`}),` first to change their role.`]})]})}let o=e.roles[0].name.toLowerCase(),s=a.find(e=>e.value.toLowerCase()===o)?.label;return(0,J.jsxs)(A,{children:[(0,J.jsx)(O,{children:`Role`}),(0,J.jsxs)(w,{value:o,onValueChange:r=>{let i=n?.find(e=>e.name.toLowerCase()===r.toLowerCase());i&&t?.({...e,roles:[i]})},children:[(0,J.jsx)(S,{"aria-label":`Role`,"data-testid":`role-select`,children:(0,J.jsx)(C,{children:s})}),(0,J.jsx)(x,{children:a.map(e=>(0,J.jsx)(b,{value:e.value,children:(0,J.jsxs)(`span`,{className:`flex flex-col`,children:[(0,J.jsx)(`span`,{children:e.label}),(0,J.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:e.hint})]})},e.value))})]})]})},Z=o({dataType:`StaffTokenResponseType`,path:`/users/me/token/`}),Q=a({path:()=>`/users/me/token/`,method:`PUT`}),ze=()=>{let{refetch:e}=Z({enabled:!1}),t=i(),{confirm:n}=Ae(),[r,a]=(0,Y.useState)(``),{mutateAsync:o}=Q();return(0,Y.useEffect)(()=>{(async()=>{let t=await e();t?.data?.apiKey&&a(`${t.data.apiKey.id}:${t.data.apiKey.secret}`)})()},[e]),(0,J.jsxs)(`div`,{children:[(0,J.jsx)(m,{as:`h6`,className:`mb-2 text-base`,weight:`semibold`,children:`Staff access token`}),(0,J.jsx)(q,{hasLabel:!1,keys:[{id:`staff-access-token`,text:r||``,onRegenerate:()=>{n({title:`Regenerate your Staff Access Token`,prompt:`You can regenerate your Staff Access Token any time, but any scripts or applications using it will need to be updated.`,okLabel:`Regenerate your Staff Access Token`,okVariant:`destructive`,onOk:async e=>{try{let t=await o([]);a(`${t.apiKey.id}:${t.apiKey.secret}`),e?.remove()}catch(e){t(e)}}})}}]})]})},Be=({errors:e,clearError:t,user:n,setUserData:r})=>{let{currentUser:i,siteData:a}=K(),o=ge(a);return(0,J.jsxs)(U,{children:[(0,J.jsxs)(A,{"data-invalid":!!e?.email||void 0,children:[(0,J.jsx)(O,{htmlFor:`staff-email`,children:`Email`}),(0,J.jsx)(z,{"aria-invalid":!!e?.email||void 0,id:`staff-email`,maxLength:191,value:n.email,onChange:e=>r({...n,email:e.target.value}),onKeyDown:()=>t(`email`)}),e?.email?(0,J.jsx)(E,{children:e.email}):(0,J.jsx)(k,{children:`Used for notifications`})]}),(0,J.jsx)(X,{user:n}),P(i)&&(0,J.jsx)(Re,{setUserData:r,user:n}),(0,J.jsxs)(A,{"data-invalid":!!e?.name||void 0,children:[(0,J.jsx)(O,{htmlFor:`staff-name`,children:`Full name`}),(0,J.jsx)(z,{"aria-invalid":!!e?.name||void 0,id:`staff-name`,maxLength:191,value:n.name,onChange:e=>r({...n,name:e.target.value}),onKeyDown:()=>t(`name`)}),e?.name?(0,J.jsx)(E,{children:e.name}):(0,J.jsx)(k,{children:`Use your real name so people can recognize you`})]}),(0,J.jsxs)(A,{children:[(0,J.jsx)(O,{htmlFor:`staff-slug`,children:`Slug`}),(0,J.jsx)(z,{id:`staff-slug`,maxLength:191,value:n.slug,onChange:e=>r({...n,slug:e.target.value})}),(0,J.jsxs)(k,{children:[o,`author/`,n.slug]})]}),(0,J.jsxs)(A,{"data-invalid":!!e?.location||void 0,children:[(0,J.jsx)(O,{htmlFor:`staff-location`,children:`Location`}),(0,J.jsx)(z,{"aria-invalid":!!e?.location||void 0,id:`staff-location`,maxLength:65535,value:n.location||``,onChange:e=>r({...n,location:e.target.value}),onKeyDown:()=>t(`location`)}),e?.location?(0,J.jsx)(E,{children:e.location}):(0,J.jsx)(k,{children:`Where in the world do you live?`})]}),(0,J.jsxs)(A,{"data-invalid":!!e?.bio||void 0,children:[(0,J.jsx)(O,{htmlFor:`staff-bio`,children:`Bio`}),(0,J.jsx)(j,{"aria-invalid":!!e?.bio||void 0,id:`staff-bio`,maxLength:65535,value:n.bio||``,onChange:e=>{r({...n,bio:e.target.value})},onKeyDown:()=>t(`bio`)}),e?.bio?(0,J.jsx)(E,{children:e.bio}):(0,J.jsxs)(k,{children:[`Recommended: `,f(250),` characters. You‘ve used `,(0,J.jsx)(`span`,{className:`font-bold`,children:f(n.bio?.length||0)})]})]}),n.id===i.id&&(0,J.jsx)(ze,{})]})},Ve=e=>(0,J.jsx)(B,{variant:`plain`,children:(0,J.jsx)(Be,{...e})}),He=({errors:e,clearError:t,validateField:n,user:r,setUserData:i})=>{let[a,o]=(0,Y.useState)(()=>Object.fromEntries(W.map(e=>{let t=r[e.key];return[e.key,e.toDisplayValue(t)]})));return(0,J.jsxs)(U,{children:[(0,J.jsxs)(A,{"data-invalid":!!e?.website||void 0,children:[(0,J.jsx)(O,{htmlFor:`staff-website`,children:`Website`}),(0,J.jsx)(z,{"aria-invalid":!!e?.website||void 0,"data-testid":`website-input`,id:`staff-website`,maxLength:2e3,placeholder:`https://example.com`,value:r.website||``,onChange:e=>{i({...r,website:e.target.value})},onKeyDown:()=>t(`website`)}),e?.website&&(0,J.jsx)(E,{children:e.website})]}),W.map(s=>(0,J.jsxs)(A,{"data-invalid":!!e?.[s.key]||void 0,children:[(0,J.jsx)(O,{htmlFor:`staff-${s.key}`,children:s.staffTitle}),(0,J.jsx)(z,{"aria-invalid":!!e?.[s.key]||void 0,"data-testid":s.testId,id:`staff-${s.key}`,maxLength:2e3,placeholder:s.placeholder,value:a[s.key],onBlur:e=>{if(n(s.key,e.target.value)){let{displayValue:t,storedValue:n}=V(s.key,e.target.value);o(e=>({...e,[s.key]:t})),i({...r,[s.key]:n})}},onChange:e=>{o(t=>({...t,[s.key]:e.target.value}))},onKeyDown:()=>t(s.key)}),e?.[s.key]&&(0,J.jsx)(E,{children:e[s.key]})]},s.key))]})},Ue=e=>(0,J.jsx)(B,{variant:`plain`,children:(0,J.jsx)(He,{...e})}),$=e(Ee(),1),We={name:({name:e})=>{let t=``;return e||(t=`Name is required`),e&&e.length>191&&(t=`Name is too long`),t},email:({email:e})=>$.default.isEmail(e||``)?``:`Enter a valid email address`,url:({url:e})=>!e||$.default.isURL(e,{require_tld:!1})?``:`Enter a valid URL`,bio:({bio:e})=>!e||e.length<=250?``:`Bio is too long`,location:({location:e})=>!e||e.length<=150?``:`Location is too long`,website:({website:e})=>!e||$.default.isURL(e)&&e.length<=2e3?``:`Enter a valid URL`,...Object.fromEntries(W.map(e=>[e.key,t=>H(e.key,t[e.key])]))},Ge=({user:e,onDeletingUserChange:t})=>{let{updateRoute:n}=T(),r=je(),a=u(),o=e=>{let t=e.split(`/`).pop()||``;return t===`social-links`||t===`email-notifications`?t:`profile`},{ownerUser:s}=Oe(),{currentUser:d}=K(),f=i(),{confirm:y,showLimit:b}=Ae(),{formState:x,setFormState:S,saveState:C,handleSave:w,updateForm:E,errors:D,setErrors:O,clearError:k,okProps:A}=l({initialState:e,savingDelay:500,savedDelay:500,onValidate:t=>Object.entries(We).reduce((n,[r,i])=>{if(Te.includes(r)&&t[r]===e[r])return n;let a=i(t);return a&&(n[r]=a),n},{}),onSave:async t=>{let r=(await L?.(t))?.users?.[0];if(r&&(S(()=>r),r.slug!==e.slug)){let e=o(a.pathname),t=e===`profile`?``:`/${e}`;n({route:`staff/${r.slug}${t}`,replace:!0})}},onSaveError:f}),j=e=>E(()=>e),M=(e,t)=>{let n=We[e]?.({[e]:t});return n?(O({...D,[e]:n}),!1):(k(e),!0)},{mutateAsync:ie}=be(),{mutateAsync:L}=ae(),{mutateAsync:z}=oe(),{mutateAsync:ge}=re(),B=De(),V=Me(),H=(0,Y.useCallback)(()=>{F(d)?n(`staff`):n({isExternal:!0,route:``})},[d,n]),U=async e=>{if(e.status===`inactive`&&e.roles[0].name!==`Contributor`)try{await B?.errorIfWouldGoOverLimit(`staff`)}catch(e){if(e instanceof ke){b({formSheet:!0,prompt:e.message||`Your current plan doesn't support more users.`,onOk:()=>n({route:r,isExternal:!0})});return}else throw e}let t=`This user will no longer be able to log in but their posts will be kept.`;e.status===`inactive`&&(t=`This user will be able to log in again and will have the same permissions they had previously.`),y({title:`Are you sure you want to suspend this user?`,prompt:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`strong`,{children:`WARNING:`}),` `,t]}),okLabel:e.status===`inactive`?`Un-suspend`:`Suspend`,okRunningLabel:e.status===`inactive`?`Un-suspending...`:`Suspending...`,okVariant:`destructive`,onOk:async t=>{let n={...e,status:e.status===`inactive`?`active`:`inactive`};try{await L(n),S(()=>n),t?.remove(),c.success(e.status===`inactive`?`User un-suspended`:`User suspended`)}catch(e){f(e)}}})},W=(n,{owner:r})=>{y({title:`Are you sure you want to delete this user?`,prompt:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`p`,{className:`mb-3`,children:[(0,J.jsx)(`span`,{className:`font-bold`,children:n.name||n.email}),` will be permanently deleted and all their posts will be automatically assigned to `,(0,J.jsx)(`span`,{className:`font-bold`,children:r.name}),`.`]}),(0,J.jsxs)(`p`,{children:[`To make these easy to find in the future, each post will be given an internal tag of `,(0,J.jsxs)(`span`,{className:`font-bold`,children:[`#`,e.slug]})]})]}),okLabel:`Delete user`,okVariant:`destructive`,onOk:async e=>{t(!0);try{await z(n?.id),e?.remove(),H(),setTimeout(()=>c.success(`User deleted`),100)}catch(e){t(!1),f(e)}}})},Ee=()=>{y({title:`Transfer Ownership`,prompt:`Are you sure you want to transfer the ownership of this blog? You will not be able to undo this action.`,okLabel:`Yep — I'm sure`,okVariant:`destructive`,onOk:async t=>{try{await ge(e.id),t?.remove(),c.success(`Ownership transferred`)}catch(e){f(e)}}})},G=async(e,t)=>{try{let n=we(await ie({file:t}));switch(e){case`cover_image`:E(e=>({...e,cover_image:n}));break;case`profile_image`:E(e=>({...e,profile_image:n}));break}}catch(e){let t=e;t.response.status===415&&(t.message=`Unsupported file type`),f(t)}},q=e=>{switch(e){case`cover_image`:E(e=>({...e,cover_image:``}));break;case`profile_image`:E(e=>({...e,profile_image:``}));break}},Ne=P(d)||ce(d)&&ne(e),Fe=N(d)&&se(x)&&x.status!==`inactive`,Ie=x.id!==d.id&&(P(d)&&!N(e)||ce(d)&&ne(e)),Le=x.status===`inactive`?`Un-suspend user`:`Suspend user`,X=`h-8 bg-surface-inverse px-3 text-surface-inverse-foreground opacity-80 hover:bg-surface-inverse/90 hover:text-surface-inverse-foreground hover:opacity-100`,Re=x.status===`inactive`?` (Suspended)`:``,Z=!F(d),Q=`mx-auto w-full max-w-[536px]`,[ze,Be]=(0,Y.useState)(o(a.pathname));return(0,J.jsx)(te,{animate:!Z,backDrop:!Z,buttonsDisabled:A.disabled,cancelLabel:`Close`,dirty:C===`unsaved`,footerClassName:Z?`mx-auto w-full max-w-[calc(536px+5rem)]`:void 0,hideXOnMobile:!0,okLabel:A.label||`Save`,okVariant:A.variant,size:Z?`bleed`:`md`,stickyFooter:!0,testId:`user-detail-modal`,width:Z?`full`:600,onClose:H,onOk:async()=>{await w({fakeWhenUnchanged:!0})},children:(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`div`,{className:`relative ${Z?`-mx-10 -mt-10`:`-mx-8 -mt-8 rounded-t`}`,children:(0,J.jsx)(`div`,{className:p(`flex flex-wrap items-end justify-between gap-8 p-8`,x.cover_image&&`bg-cover bg-center`,Z&&x.cover_image&&`min-h-[30vmin]`),style:{backgroundImage:x.cover_image?`url(${x.cover_image})`:`none`},children:(0,J.jsxs)(`div`,{className:p(`flex w-full flex-col gap-2`,Z&&Q),children:[(0,J.jsxs)(`div`,{className:`flex flex-nowrap items-start justify-between gap-3`,children:[(0,J.jsx)(`div`,{children:(0,J.jsx)(Se,{className:`-ml-1 size-20 overflow-visible rounded-full`,children:x.profile_image?(0,J.jsxs)(ve,{className:`rounded-full`,children:[(0,J.jsx)(Ce,{"data-testid":`profile-image-preview`,id:`avatar`,src:x.profile_image}),(0,J.jsxs)(_e,{className:`top-1 right-1`,children:[V.isEnabled&&(0,J.jsx)(ye,{"aria-label":`Edit profile image`,className:`rounded-full`,onClick:()=>V.openEditor({image:x.profile_image||``,handleSave:async e=>G(`profile_image`,e)}),children:(0,J.jsx)(ue,{})}),(0,J.jsx)(ye,{"aria-label":`Remove profile image`,className:`rounded-full`,onClick:()=>q(`profile_image`),children:(0,J.jsx)(fe,{})})]})]}):(0,J.jsx)(xe,{className:`rounded-full bg-surface-inverse text-surface-inverse-foreground opacity-80 hover:opacity-100`,inputId:`avatar`,inputTestId:`profile-image-upload`,onDropAccepted:e=>G(`profile_image`,e[0]),children:(0,J.jsx)(de,{className:`size-8 text-surface-inverse-foreground`})})})}),(0,J.jsxs)(`div`,{className:`flex flex-nowrap items-start gap-3`,children:[x.cover_image?(0,J.jsxs)(`div`,{className:`flex flex-nowrap items-end justify-end gap-4`,children:[(0,J.jsx)(`img`,{alt:``,className:`hidden`,"data-testid":`cover-image-preview`,src:x.cover_image}),V.isEnabled&&(0,J.jsx)(R,{className:X,type:`button`,onClick:()=>V.openEditor({image:x.cover_image||``,handleSave:async e=>G(`cover_image`,e)}),children:`Edit cover image`}),(0,J.jsx)(R,{className:X,type:`button`,onClick:()=>q(`cover_image`),children:`Delete cover image`})]}):(0,J.jsx)(ee,{className:`h-8`,inputId:`cover-image`,inputTestId:`cover-image-upload`,variant:`button`,onDropAccepted:e=>G(`cover_image`,e[0]),children:`Upload cover image`}),Ne&&(0,J.jsx)(`div`,{className:`z-10`,children:(0,J.jsxs)(pe,{children:[(0,J.jsx)(he,{asChild:!0,children:(0,J.jsxs)(`button`,{className:p(`flex h-8 cursor-pointer items-center justify-center rounded px-3`,x.cover_image?`bg-[rgba(0,0,0,0.75)] opacity-80 hover:opacity-100`:`border border-grey-300 bg-transparent text-black dark:border-grey-800 dark:text-white`),type:`button`,children:[(0,J.jsx)(`span`,{className:`sr-only`,children:`Actions`}),(0,J.jsx)(le,{className:p(`size-5`,x.cover_image&&`text-white`)})]})}),(0,J.jsxs)(me,{align:`end`,className:`z-[9999]`,children:[Fe&&(0,J.jsx)(I,{onSelect:Ee,children:`Make owner`}),(0,J.jsx)(I,{onSelect:()=>{n(`history/view/${x.id}`)},children:`View user activity`}),Ie&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(I,{onSelect:()=>{U(x)},children:Le}),(0,J.jsx)(I,{className:`text-destructive focus:text-destructive`,onSelect:()=>{W(e,{owner:s})},children:`Delete user`})]})]})]})})]})]}),(0,J.jsxs)(`div`,{children:[(0,J.jsxs)(m,{as:`h3`,className:p(`break-words md:text-2xl md:break-normal`,x.cover_image?`text-white`:`text-foreground`),leading:`heading`,size:`xl`,weight:`bold`,children:[e.name,Re]}),(0,J.jsx)(`span`,{className:p(`text-md font-medium capitalize`,x.cover_image?`text-white`:`text-black dark:text-white`),children:e.roles[0].name.toLowerCase()})]})]})})}),(0,J.jsx)(`div`,{className:p(`mt-6 flex flex-col`,Z&&Q),children:(0,J.jsxs)(v,{value:ze,variant:`underline`,onValueChange:t=>{let r=t===`profile`?``:`/${t}`;n(`staff/${e.slug}${r}`),Be(t)},children:[(0,J.jsxs)(_,{children:[(0,J.jsx)(h,{title:`Profile`,value:`profile`,children:`Profile`}),(0,J.jsx)(h,{title:`Social Links`,value:`social-links`,children:`Social Links`}),(0,J.jsx)(h,{title:`Email Notifications`,value:`email-notifications`,children:`Email Notifications`})]}),(0,J.jsx)(g,{className:`pt-4`,value:`profile`,children:(0,J.jsx)(Ve,{clearError:k,errors:D,setUserData:j,user:x,validateField:M})}),(0,J.jsx)(g,{className:`pt-4`,value:`social-links`,children:(0,J.jsx)(Ue,{clearError:k,errors:D,setUserData:j,user:x,validateField:M})}),(0,J.jsx)(g,{className:`pt-4`,value:`email-notifications`,children:(0,J.jsx)(Pe,{setUserData:j,user:x})})]})})]})})},Ke=()=>{let{slug:e}=d(),{currentUser:t}=K(),{updateRoute:n}=T(),a=i(),[o,s]=(0,Y.useState)(!1),l=t.slug===e,{data:u,error:f}=ie(e||``,{enabled:!l&&!!e,defaultErrorHandler:!1}),p=l?t:u?.users?.[0],m=f instanceof r&&f.response?.status===404;(0,Y.useEffect)(()=>{f&&!m&&a(f)},[f,m,a]);let h=!l&&!!e&&!p&&(m||u!==void 0),g=(0,Y.useRef)(void 0);p&&(g.current=p);let _=p||(h?void 0:g.current),v=h?e??null:null,y=(0,Y.useRef)(null);return(0,Y.useEffect)(()=>{!v||o||y.current===v||(y.current=v,c.error(`User not found`),F(t)?n({route:`staff`,replace:!0}):n({isExternal:!0,route:``}))},[v,o,t,n]),_?(0,J.jsx)(Ge,{user:_,onDeletingUserChange:s}):null};export{Ke 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-DX3WBWVO.js";import{t as r}from"./use-tinybird-query-Ci_DiPkX.js";import{g as i}from"./stats-C615kulJ.js";import{g as a,m as o}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as s,t as c}from"./router-provider-CkB_ArLF.js";import{f as l,h as ee,p as u}from"./dist-Cb5RSHSg.js";import{a as d}from"./shade-app-B3heOAfz-BhQXxNkT.js";import{a as f,i as p,n as te,t as m}from"./chart-helpers-DcO3k_vA.js";import{r as h,t as g}from"./tabs-l9c7FjzI.js";import{a as ne}from"./filters-DZJT29GW.js";import{a as _,i as v,n as y,o as b,r as x,t as S}from"./card-CiiE7QfM.js";import{a as C,c as w,i as T,l as E,n as D,o as O,r as k,s as A,t as j,u as M}from"./data-list-CupF7bjM.js";import{t as re}from"./empty-indicator-WB1WgT9h.js";import{a as N,i as ie,n as ae,o as P,r as oe,s as F}from"./use-filter-params-0hcJJuEJ.js";import{$r as I,Bn as L,Hn as R,Kr as z,Ln as B,Pr as V,Rn as H,Rs as U,To as se,Vn as W,Wr as G,Xn as K,Yr as ce,Zr as le,aa as ue,ai as de,f as fe,ir as pe,l as me,qr as he,qs as ge,u as _e,zn as ve}from"./index-BOJzlYiz.js";import{t as q}from"./date-range-select-Bsh4gIek.js";import{n as J,r as Y,t as ye}from"./kpi-tabs-BqoIM6bI.js";import{t as be}from"./use-analytics-data-IxJcSjc9.js";import{n as xe,t as Se}from"./audience-BY8od8If.js";import{r as Ce,t as we}from"./post-analytics-header-_ydSY8qO.js";import{n as Te}from"./post-analytics-context-D0Mw-Pmv.js";import{n as X,r as Ee,t as De}from"./kpi-helpers-ssbuy-hD.js";var Z=e(t(),1),Q=n(),Oe=({data:e,range:t})=>{let[n]=a(),[r,i]=(0,Z.useState)(n.get(`tab`)||`visits`),o=X[r],s=p(e||[],t,o.dataKey,`sum`)?.map(e=>{let t=Number(e[o.dataKey]);return{date:String(e.date),value:t,formattedValue:o.formatter(t),label:o.label}}),c=De(e),l=m(t,e||[],{fieldName:o.dataKey});return(0,Q.jsx)(S,{children:(0,Q.jsx)(y,{children:(0,Q.jsxs)(g,{defaultValue:r,variant:`kpis`,children:[(0,Q.jsxs)(h,{className:`-mx-6 hidden grid-cols-2 md:visible! md:grid!`,children:[(0,Q.jsx)(J,{value:`visits`,onClick:()=>{i(`visits`)},children:(0,Q.jsx)(Y,{color:X.visits.color,label:`Unique visitors`,value:c.visits})}),(0,Q.jsx)(J,{value:`views`,onClick:()=>{i(`views`)},children:(0,Q.jsx)(Y,{color:X.views.color,label:`Total views`,value:c.views})})]}),(0,Q.jsxs)(ce,{children:[(0,Q.jsx)(de,{className:`md:hidden`,asChild:!0,children:(0,Q.jsxs)(ye,{children:[r===`visits`&&(0,Q.jsx)(Y,{color:`var(--chart-blue)`,label:`Unique visitors`,value:c.visits}),r===`views`&&(0,Q.jsx)(Y,{color:`var(--chart-teal)`,label:`Total views`,value:c.views})]})}),(0,Q.jsxs)(le,{align:`end`,className:`w-56`,children:[(0,Q.jsx)(I,{onClick:()=>i(`visits`),children:`Unique visitors`}),(0,Q.jsx)(I,{onClick:()=>i(`views`),children:`Total views`})]})]}),(0,Q.jsx)(`div`,{className:`my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500`,children:(0,Q.jsx)(f,{className:`-mb-3 aspect-auto h-[16vw] max-h-[320px] min-h-[180px] w-full`,color:o.color,data:s,id:o.dataKey,range:l,showHours:!0,syncId:`overview-charts`})})]})})})},ke=e(P(),1);ke.registerLocale(N);var Ae=e=>me[e]||ke.getName(e,`en`,{select:`alias`})||`Unknown`,je=e=>({"UNITED STATES":`US`,"UNITED STATES OF AMERICA":`US`,USA:`US`,"UNITED KINGDOM":`GB`,UK:`GB`,"GREAT BRITAIN":`GB`,NETHERLANDS:`NL`})[e.toUpperCase()]||(e.length>2?e.substring(0,2):e),$=({tableHeader:e,data:t,onLocationClick:n})=>(0,Q.jsxs)(j,{children:[e&&(0,Q.jsxs)(C,{children:[(0,Q.jsx)(T,{children:`Country`}),(0,Q.jsx)(T,{children:`Visitors`})]}),(0,Q.jsx)(k,{children:t.map(e=>{let t=Ae(`${e.location}`)||`Unknown`,r=n&&e.location!==`Unknown`,i=e.location?e.location.toLowerCase():`unknown`;return(0,Q.jsxs)(M,{className:r?`cursor-pointer`:``,"data-testid":`location-row-${i}`,onClick:r?()=>n(e.location):void 0,children:[(0,Q.jsx)(D,{style:{width:`${e.percentage?Math.round(e.percentage*100):0}%`}}),(0,Q.jsx)(O,{className:`group-hover/data:max-w-[calc(100%-140px)]`,children:(0,Q.jsxs)(`div`,{className:`flex items-center space-x-3 overflow-hidden`,title:t||`Unknown`,children:[(0,Q.jsx)(F,{countryCode:`${je(e.location)}`,fallback:(0,Q.jsx)(`span`,{className:`flex h-[14px] w-[22px] items-center justify-center rounded-[2px] bg-black text-white`,children:(0,Q.jsx)(d.SkullAndBones,{className:`size-3`})})}),(0,Q.jsx)(`div`,{className:`truncate font-medium`,children:t})]})}),(0,Q.jsxs)(A,{children:[(0,Q.jsx)(w,{children:l(Number(e.visits))}),(0,Q.jsx)(E,{children:u(e.percentage)})]})]},e.location||`unknown`)})})]}),Me=({data:e,isLoading:t,onLocationClick:n})=>{let r=e.slice(0,10);return(0,Q.jsx)(Q.Fragment,{children:t?``:(0,Q.jsx)(Q.Fragment,{children:e&&e.length>0&&(0,Q.jsxs)(S,{className:`group/datalist`,"data-testid":`locations-card`,children:[(0,Q.jsxs)(`div`,{className:`flex items-center justify-between p-6`,children:[(0,Q.jsxs)(_,{className:`p-0`,children:[(0,Q.jsx)(b,{children:`Locations`}),(0,Q.jsx)(x,{children:`Where are the readers of this post`})]}),(0,Q.jsx)(U,{className:`mr-2`,children:`Visitors`})]}),(0,Q.jsxs)(y,{className:`overflow-hidden`,children:[(0,Q.jsx)(K,{}),(0,Q.jsx)($,{data:r,tableHeader:!1,onLocationClick:n})]}),e.length>10&&(0,Q.jsx)(v,{children:(0,Q.jsxs)(B,{children:[(0,Q.jsx)(R,{asChild:!0,children:(0,Q.jsxs)(V,{variant:`outline`,children:[`View all `,(0,Q.jsx)(ue,{})]})}),(0,Q.jsxs)(H,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,Q.jsxs)(L,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,Q.jsx)(W,{children:`Top locations`}),(0,Q.jsx)(ve,{children:`Where are the readers of this post`})]}),(0,Q.jsx)(`div`,{className:`group/datalist`,children:(0,Q.jsx)($,{data:e,tableHeader:!0,onLocationClick:n})})]})]})})]})})})},Ne=()=>{let e=s(),{postId:t}=o(),{statsConfig:n,isLoading:a,site:l}=be(),{range:u,setRange:d,post:f,isPostLoading:p}=Te(),{appSettings:m}=ge(),h=(0,Z.useRef)(null),{filters:g,setFilters:_}=oe({supportedFields:ae,trackingSource:`post-analytics`}),v=(0,Z.useMemo)(()=>Se(g.find(e=>e.field===`audience`)?.values),[g]);(0,Z.useEffect)(()=>{!p&&f?.email_only&&e(`/posts/analytics/${t}`)},[p,f?.email_only,e,t]);let b=(0,Z.useMemo)(()=>{if(!f?.published_at)return _e.allTime.value;let e=he(f.published_at),{startDate:t,endDate:n}=z(u);return n.diff(t,`days`)+1>e?e:u},[f?.published_at,u]),{startDate:x,endDate:C,timezone:w}=z(b),T=(0,Z.useCallback)(()=>{let e=ee(h.current);e&&e.scrollTo({top:0,behavior:`smooth`})},[]),E=(0,Z.useMemo)(()=>{let e={};return g.forEach(t=>{let n=t.field,r=t.values;if(n===`audience`)return;let i=r&&r.length>0&&r[0]!==null&&r[0]!==void 0,a=n===`source`&&r?.[0]===``;if(i&&(r[0]!==``||a)){let t=String(r[0]);e[n]=t}}),e},[g]),D=(0,Z.useCallback)((e,t)=>{_(n=>n.find(t=>t.field===e)?n.map(n=>n.field===e?{...n,values:[t]}:n):[...n,ne(e,`is`,[t])]),T()},[_,T]),O=(0,Z.useCallback)(e=>D(`location`,e),[D]),k=(0,Z.useCallback)(e=>D(`source`,e),[D]),A=(0,Z.useMemo)(()=>{let e={site_uuid:n?.id||``,date_from:G(x),date_to:G(C),timezone:w,member_status:xe(v),post_uuid:``,...E};return!p&&f?.uuid?{...e,post_uuid:f.uuid}:e},[p,f,n?.id,x,C,w,v,E]),{data:j,loading:M}=r({endpoint:`api_kpis`,statsConfig:n,params:A}),{data:N,loading:P}=r({endpoint:`api_top_locations`,statsConfig:n,params:A}),{data:F,loading:I}=r({endpoint:`api_top_sources`,statsConfig:n,params:A}),L=(0,Z.useMemo)(()=>N?.reduce((e,t)=>e+Number(t.visits),0)||0,[N]),R=(0,Z.useMemo)(()=>F?F.reduce((e,t)=>e+Number(t.visits||0),0):0,[F]),B=l.url,V=l.icon,H=(0,Z.useMemo)(()=>{let e=N?.map(e=>({location:String(e.location),visits:Number(e.visits),percentage:L>0?Number(e.visits)/L:0,isUnknown:fe.includes(String(e.location))}))||[],t=e.filter(e=>!e.isUnknown),n=e.filter(e=>e.isUnknown),r=n.length>0?[{location:`Unknown`,visits:n.reduce((e,t)=>e+t.visits,0),percentage:n.reduce((e,t)=>e+t.percentage,0)}]:[];return[...t,...r]},[N,L]),U=a||p||M||P||I,W=De(j),K=g.length>0;return m&&!m.analytics?.webAnalytics?(0,Q.jsx)(c,{to:`/posts/analytics/${t}`,replace:!0}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(we,{currentTab:`Web`,children:[K&&(0,Q.jsx)(i,{children:(0,Q.jsx)(q,{range:u,onRangeChange:d})}),(0,Q.jsxs)(i,{className:`${K?`mt-0! [grid-area:subactions] lg:mt-[25px]!`:`[grid-area:actions]`}`,children:[(0,Q.jsx)(ie,{filters:g,postUuid:f?.uuid,range:u,onChange:_}),!K&&(0,Q.jsx)(q,{range:u,onRangeChange:d})]})]}),(0,Q.jsx)(Ce,{ref:h,children:U?(0,Q.jsx)(S,{className:`size-full`,variant:`plain`,children:(0,Q.jsx)(y,{className:`size-full items-center justify-center`,children:(0,Q.jsx)(pe,{})})}):j&&j.length!==0&&W.visits!==`0`?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(Oe,{data:j,range:b}),(0,Q.jsxs)(`div`,{className:`flex flex-col gap-6 lg:grid lg:grid-cols-2`,children:[(0,Q.jsx)(Me,{data:H,isLoading:P,onLocationClick:O}),(0,Q.jsx)(Ee,{data:F,range:b,siteIcon:V,siteUrl:B,totalVisitors:R,onSourceClick:k})]})]}):(0,Q.jsx)(`div`,{className:`grow`,children:(0,Q.jsx)(re,{className:`h-full`,description:`Try adjusting filters to see more data.`,title:`No visitors ${te(u)}`,children:(0,Q.jsx)(se,{strokeWidth:1.5})})})})]})};export{Ne as default};
|